Skip to content

Commit c4b72eb

Browse files
committed
HHH-19855 Test usage of <convert> in orm.xml at entity level
1 parent 99764ca commit c4b72eb

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/mapping/converted/converter/SimpleXmlOverriddenTest.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.hibernate.type.Type;
2121
import org.hibernate.type.descriptor.java.StringJavaType;
2222
import org.hibernate.type.descriptor.jdbc.spi.JdbcTypeRegistry;
23+
import org.hibernate.type.internal.BasicTypeImpl;
2324
import org.hibernate.type.internal.ConvertedBasicTypeImpl;
2425

2526
import org.hibernate.testing.junit4.BaseUnitTestCase;
@@ -82,10 +83,27 @@ public void testDefinitionAtAttributeLevel() {
8283

8384
PersistentClass pc = metadata.getEntityBinding( TheEntity.class.getName() );
8485
BasicType<?> type = (BasicType<?>) pc.getProperty( "it" ).getType();
86+
assertTyping( BasicTypeImpl.class, type ); // Should not be ConvertedBasicTypeImpl in particular
8587
assertTyping( StringJavaType.class, type.getJavaTypeDescriptor() );
8688
assertTyping( jdbcTypeRegistry.getDescriptor( Types.VARCHAR ).getClass(), type.getJdbcType() );
8789
}
8890

91+
/**
92+
* A baseline test, with an explicit @Convert annotation at entity level that should be in effect
93+
*/
94+
@Test
95+
public void baselineAtEntityLevel() {
96+
Metadata metadata = new MetadataSources( ssr )
97+
.addAnnotatedClass( TheEntity2.class )
98+
.buildMetadata();
99+
100+
PersistentClass pc = metadata.getEntityBinding( TheEntity2.class.getName() );
101+
Type type = pc.getProperty( "it" ).getType();
102+
ConvertedBasicTypeImpl adapter = assertTyping( ConvertedBasicTypeImpl.class, type );
103+
final JpaAttributeConverter converter = (JpaAttributeConverter) adapter.getValueConverter();
104+
assertTrue( SillyStringConverter.class.isAssignableFrom( converter.getConverterJavaType().getJavaTypeClass() ) );
105+
}
106+
89107
/**
90108
* Test outcome of applying overrides via orm.xml, specifically at the entity level
91109
*/
@@ -101,6 +119,7 @@ public void testDefinitionAtEntityLevel() {
101119

102120
PersistentClass pc = metadata.getEntityBinding( TheEntity2.class.getName() );
103121
BasicType<?> type = (BasicType<?>) pc.getProperty( "it" ).getType();
122+
assertTyping( BasicTypeImpl.class, type ); // Should not be ConvertedBasicTypeImpl in particular
104123
assertTyping( StringJavaType.class, type.getJavaTypeDescriptor() );
105124
assertTyping( jdbcTypeRegistry.getDescriptor( Types.VARCHAR ).getClass(), type.getJdbcType() );
106125
}

0 commit comments

Comments
 (0)