From c4b72eb39e6d68002b7184f2ec0382ddaf625df9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Fri, 10 Oct 2025 13:03:44 +0200 Subject: [PATCH] HHH-19855 Test usage of in orm.xml at entity level --- .../converter/SimpleXmlOverriddenTest.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/converted/converter/SimpleXmlOverriddenTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/converted/converter/SimpleXmlOverriddenTest.java index 4a096dbe8326..64ab2e957fd1 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/converted/converter/SimpleXmlOverriddenTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/converted/converter/SimpleXmlOverriddenTest.java @@ -20,6 +20,7 @@ import org.hibernate.type.Type; import org.hibernate.type.descriptor.java.StringJavaType; import org.hibernate.type.descriptor.jdbc.spi.JdbcTypeRegistry; +import org.hibernate.type.internal.BasicTypeImpl; import org.hibernate.type.internal.ConvertedBasicTypeImpl; import org.hibernate.testing.junit4.BaseUnitTestCase; @@ -82,10 +83,27 @@ public void testDefinitionAtAttributeLevel() { PersistentClass pc = metadata.getEntityBinding( TheEntity.class.getName() ); BasicType type = (BasicType) pc.getProperty( "it" ).getType(); + assertTyping( BasicTypeImpl.class, type ); // Should not be ConvertedBasicTypeImpl in particular assertTyping( StringJavaType.class, type.getJavaTypeDescriptor() ); assertTyping( jdbcTypeRegistry.getDescriptor( Types.VARCHAR ).getClass(), type.getJdbcType() ); } + /** + * A baseline test, with an explicit @Convert annotation at entity level that should be in effect + */ + @Test + public void baselineAtEntityLevel() { + Metadata metadata = new MetadataSources( ssr ) + .addAnnotatedClass( TheEntity2.class ) + .buildMetadata(); + + PersistentClass pc = metadata.getEntityBinding( TheEntity2.class.getName() ); + Type type = pc.getProperty( "it" ).getType(); + ConvertedBasicTypeImpl adapter = assertTyping( ConvertedBasicTypeImpl.class, type ); + final JpaAttributeConverter converter = (JpaAttributeConverter) adapter.getValueConverter(); + assertTrue( SillyStringConverter.class.isAssignableFrom( converter.getConverterJavaType().getJavaTypeClass() ) ); + } + /** * Test outcome of applying overrides via orm.xml, specifically at the entity level */ @@ -101,6 +119,7 @@ public void testDefinitionAtEntityLevel() { PersistentClass pc = metadata.getEntityBinding( TheEntity2.class.getName() ); BasicType type = (BasicType) pc.getProperty( "it" ).getType(); + assertTyping( BasicTypeImpl.class, type ); // Should not be ConvertedBasicTypeImpl in particular assertTyping( StringJavaType.class, type.getJavaTypeDescriptor() ); assertTyping( jdbcTypeRegistry.getDescriptor( Types.VARCHAR ).getClass(), type.getJdbcType() ); }