Skip to content

Commit 24035d7

Browse files
David Ellingsworthsebersole
authored andcommitted
HHH-14216 Implement isDirty for OneToOneType and always check if it is dirty or not.
1 parent ef5c944 commit 24035d7

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

hibernate-core/src/main/java/org/hibernate/type/OneToOneType.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -151,12 +151,19 @@ public boolean isOneToOne() {
151151

152152
@Override
153153
public boolean isDirty(Object old, Object current, SharedSessionContractImplementor session) {
154-
return false;
154+
if ( isSame( old, current ) ) {
155+
return false;
156+
}
157+
158+
Object oldid = getIdentifier( old, session );
159+
Object newid = getIdentifier( current, session );
160+
161+
return getIdentifierType( session ).isDirty( oldid, newid, session );
155162
}
156163

157164
@Override
158165
public boolean isDirty(Object old, Object current, boolean[] checkable, SharedSessionContractImplementor session) {
159-
return false;
166+
return isDirty(old, current, session);
160167
}
161168

162169
@Override
@@ -218,14 +225,8 @@ public Object assemble(Serializable oid, SharedSessionContractImplementor sessio
218225
return resolveIdentifier( id, session );
219226
}
220227

221-
/**
222-
* We don't need to dirty check one-to-one because of how
223-
* assemble/disassemble is implemented and because a one-to-one
224-
* association is never dirty
225-
*/
226228
@Override
227229
public boolean isAlwaysDirtyChecked() {
228-
//TODO: this is kinda inconsistent with CollectionType
229-
return false;
230+
return true;
230231
}
231232
}

0 commit comments

Comments
 (0)