Skip to content

Commit

Permalink
HHH-15842 Convert simple foreign key values before binding
Browse files Browse the repository at this point in the history
  • Loading branch information
kkoniuszy authored and beikov committed Dec 21, 2022
1 parent 6d76b5a commit 03df7da
Showing 1 changed file with 6 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import org.hibernate.metamodel.mapping.PropertyBasedMapping;
import org.hibernate.metamodel.mapping.SelectableConsumer;
import org.hibernate.metamodel.mapping.SelectableMapping;
import org.hibernate.metamodel.model.convert.spi.BasicValueConverter;
import org.hibernate.metamodel.model.domain.NavigableRole;
import org.hibernate.property.access.spi.PropertyAccess;
import org.hibernate.proxy.HibernateProxy;
Expand Down Expand Up @@ -377,7 +378,9 @@ public EntityMappingType findContainingEntityMapping() {

@Override
public Object disassemble(Object value, SharedSessionContractImplementor session) {
return value;
BasicValueConverter valueConverter = getJdbcMapping().getValueConverter();

return valueConverter == null ? value : valueConverter.toRelationalValue( value );
}

@Override
Expand Down Expand Up @@ -420,7 +423,7 @@ public int forEachDisassembledJdbcValue(

@Override
public void breakDownJdbcValues(Object domainValue, JdbcValueConsumer valueConsumer, SharedSessionContractImplementor session) {
valueConsumer.consume( domainValue, keySide.getModelPart() );
valueConsumer.consume( disassemble( domainValue, session ), keySide.getModelPart() );
}

@Override
Expand Down Expand Up @@ -467,7 +470,7 @@ public int forEachJdbcValue(
int offset,
JdbcValuesConsumer valuesConsumer,
SharedSessionContractImplementor session) {
valuesConsumer.consume( offset, value, targetSide.getModelPart().getJdbcMapping() );
valuesConsumer.consume( offset, disassemble( value, session ), targetSide.getModelPart().getJdbcMapping() );
return getJdbcTypeCount();
}

Expand Down

0 comments on commit 03df7da

Please sign in to comment.