From bb7b524e403b710d617cf022ef8e1aa02783df00 Mon Sep 17 00:00:00 2001 From: Andrea Boriero Date: Mon, 30 Aug 2021 09:13:12 +0200 Subject: [PATCH] Re-enabled additional tests --- .../MaterializedNClobBindTest.java | 4 +- .../NationalizedLobFieldTest.java | 106 +++++++++++++++++ .../nationalized/SimpleNationalizedTest.java | 58 ++++++---- .../nationalized/StringNationalizedTest.java | 86 ++++++++++++++ .../UseNationalizedCharDataSettingTest.java | 24 ++-- .../NationalizedLobFieldTest.java | 108 ------------------ .../nationalized/StringNationalizedTest.java | 106 ----------------- 7 files changed, 240 insertions(+), 252 deletions(-) rename hibernate-core/src/test/java/org/hibernate/{ => orm}/test/nationalized/MaterializedNClobBindTest.java (98%) create mode 100644 hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/NationalizedLobFieldTest.java rename hibernate-core/src/test/java/org/hibernate/{ => orm}/test/nationalized/SimpleNationalizedTest.java (65%) create mode 100644 hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/StringNationalizedTest.java rename hibernate-core/src/test/java/org/hibernate/{ => orm}/test/nationalized/UseNationalizedCharDataSettingTest.java (85%) delete mode 100644 hibernate-core/src/test/java/org/hibernate/test/nationalized/NationalizedLobFieldTest.java delete mode 100644 hibernate-core/src/test/java/org/hibernate/test/nationalized/StringNationalizedTest.java diff --git a/hibernate-core/src/test/java/org/hibernate/test/nationalized/MaterializedNClobBindTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/MaterializedNClobBindTest.java similarity index 98% rename from hibernate-core/src/test/java/org/hibernate/test/nationalized/MaterializedNClobBindTest.java rename to hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/MaterializedNClobBindTest.java index 96d6b8b8ea..8110df0ad9 100644 --- a/hibernate-core/src/test/java/org/hibernate/test/nationalized/MaterializedNClobBindTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/MaterializedNClobBindTest.java @@ -4,7 +4,7 @@ * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or . */ -package org.hibernate.test.nationalized; +package org.hibernate.orm.test.nationalized; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; @@ -24,7 +24,7 @@ import org.hibernate.type.descriptor.jdbc.JdbcTypeDescriptor; import org.hibernate.testing.TestForIssue; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * @author Gail Badner diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/NationalizedLobFieldTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/NationalizedLobFieldTest.java new file mode 100644 index 0000000000..eb6e0dc39c --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/NationalizedLobFieldTest.java @@ -0,0 +1,106 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * See the lgpl.txt file in the root directory or . + */ +package org.hibernate.orm.test.nationalized; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Lob; +import javax.persistence.Table; + +import org.hibernate.annotations.Nationalized; +import org.hibernate.cfg.AvailableSettings; + +import org.hibernate.testing.TestForIssue; +import org.hibernate.testing.orm.junit.DialectFeatureChecks; +import org.hibernate.testing.orm.junit.DomainModel; +import org.hibernate.testing.orm.junit.RequiresDialectFeature; +import org.hibernate.testing.orm.junit.ServiceRegistry; +import org.hibernate.testing.orm.junit.SessionFactory; +import org.hibernate.testing.orm.junit.SessionFactoryScope; +import org.hibernate.testing.orm.junit.Setting; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +/** + * @author Andrea Boriero + */ +@TestForIssue(jiraKey = "HHH-10364") +@RequiresDialectFeature(feature = DialectFeatureChecks.SupportsNationalizedData.class) +@DomainModel( + annotatedClasses = NationalizedLobFieldTest.MyEntity.class +) +@SessionFactory +@ServiceRegistry( + settings = @Setting(name = AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, value = "false") +) +public class NationalizedLobFieldTest { + + @BeforeEach + public void setUp(SessionFactoryScope scope) { + scope.inTransaction( + session -> { + MyEntity e = new MyEntity( 1L ); + e.setState( "UK" ); + session.save( e ); + } + ); + } + + @AfterEach + public void tearDown(SessionFactoryScope scope) { + scope.inTransaction( + session -> + session.createQuery( "delete from MyEntity" ).executeUpdate() + ); + } + + @Test + public void testNationalization(SessionFactoryScope scope) { + scope.inSession( + session -> { + MyEntity myEntity = session.get( MyEntity.class, 1L ); + assertNotNull( myEntity ); + assertThat( myEntity.getState(), is( "UK" ) ); + } + ); + } + + @Entity(name = "MyEntity") + @Table(name = "my_entity") + public static class MyEntity { + @Id + private long id; + + @Lob + @Nationalized + private String state; + + public MyEntity() { + } + + public MyEntity(long id) { + this.id = id; + } + + public long getId() { + return id; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + } +} diff --git a/hibernate-core/src/test/java/org/hibernate/test/nationalized/SimpleNationalizedTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/SimpleNationalizedTest.java similarity index 65% rename from hibernate-core/src/test/java/org/hibernate/test/nationalized/SimpleNationalizedTest.java rename to hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/SimpleNationalizedTest.java index 350767709e..45ec0f5b30 100644 --- a/hibernate-core/src/test/java/org/hibernate/test/nationalized/SimpleNationalizedTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/SimpleNationalizedTest.java @@ -4,7 +4,7 @@ * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or . */ -package org.hibernate.test.nationalized; +package org.hibernate.orm.test.nationalized; import java.sql.NClob; import javax.persistence.Entity; @@ -17,8 +17,8 @@ import org.hibernate.boot.MetadataSources; import org.hibernate.boot.registry.StandardServiceRegistry; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; -import org.hibernate.dialect.CockroachDialect; -import org.hibernate.dialect.PostgreSQL81Dialect; +import org.hibernate.dialect.Dialect; +import org.hibernate.dialect.NationalizationSupport; import org.hibernate.mapping.PersistentClass; import org.hibernate.mapping.Property; import org.hibernate.type.CharacterArrayType; @@ -30,20 +30,26 @@ import org.hibernate.type.NTextType; import org.hibernate.type.StringNVarcharType; import org.hibernate.type.StringType; +import org.hibernate.type.descriptor.java.CharacterArrayTypeDescriptor; +import org.hibernate.type.descriptor.jdbc.NVarcharTypeDescriptor; +import org.hibernate.type.internal.StandardBasicTypeImpl; -import org.hibernate.testing.junit4.BaseUnitTestCase; -import org.junit.Test; +import org.hibernate.testing.orm.junit.BaseUnitTest; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertSame; +import static org.hamcrest.CoreMatchers.instanceOf; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertSame; /** * @author Steve Ebersole */ -public class SimpleNationalizedTest extends BaseUnitTestCase { +@BaseUnitTest +public class SimpleNationalizedTest { - @SuppressWarnings({"UnusedDeclaration", "SpellCheckingInspection"}) - @Entity( name="NationalizedEntity") + @SuppressWarnings({ "UnusedDeclaration", "SpellCheckingInspection" }) + @Entity(name = "NationalizedEntity") public static class NationalizedEntity { @Id private Integer id; @@ -61,10 +67,10 @@ public static class NationalizedEntity { @Nationalized private Character ncharacterAtt; - + @Nationalized private Character[] ncharArrAtt; - + @Type(type = "ntext") private String nlongvarcharcharAtt; } @@ -82,20 +88,21 @@ public void simpleNationalizedTest() { assertNotNull( pc ); Property prop = pc.getProperty( "nvarcharAtt" ); - if(metadata.getDatabase().getDialect() instanceof PostgreSQL81Dialect || - metadata.getDatabase().getDialect() instanceof CockroachDialect ){ + final Dialect dialect = metadata.getDatabase().getDialect(); + if ( dialect.getNationalizationSupport() != NationalizationSupport.EXPLICIT ) { // See issue HHH-10693 assertSame( StringType.INSTANCE, prop.getType() ); - }else{ + } + else { assertSame( StringNVarcharType.INSTANCE, prop.getType() ); } prop = pc.getProperty( "materializedNclobAtt" ); - if(metadata.getDatabase().getDialect() instanceof PostgreSQL81Dialect || - metadata.getDatabase().getDialect() instanceof CockroachDialect ){ + if ( dialect.getNationalizationSupport() != NationalizationSupport.EXPLICIT ) { // See issue HHH-10693 assertSame( MaterializedClobType.INSTANCE, prop.getType() ); - }else { + } + else { assertSame( MaterializedNClobType.INSTANCE, prop.getType() ); } prop = pc.getProperty( "nclobAtt" ); @@ -105,17 +112,18 @@ public void simpleNationalizedTest() { assertSame( NTextType.INSTANCE, prop.getType() ); prop = pc.getProperty( "ncharArrAtt" ); - if(metadata.getDatabase().getDialect() instanceof PostgreSQL81Dialect || - metadata.getDatabase().getDialect() instanceof CockroachDialect ){ + if ( dialect.getNationalizationSupport() != NationalizationSupport.EXPLICIT ) { // See issue HHH-10693 assertSame( CharacterArrayType.INSTANCE, prop.getType() ); - }else { - assertSame( StringNVarcharType.INSTANCE, prop.getType() ); } - + else { + assertThat( prop.getType(), instanceOf( StandardBasicTypeImpl.class ) ); + StandardBasicTypeImpl type = (StandardBasicTypeImpl) prop.getType(); + assertThat( type.getJavaTypeDescriptor(), instanceOf( CharacterArrayTypeDescriptor.class ) ); + assertThat( type.getJdbcTypeDescriptor(), instanceOf( NVarcharTypeDescriptor.class ) ); + } prop = pc.getProperty( "ncharacterAtt" ); - if ( metadata.getDatabase().getDialect() instanceof PostgreSQL81Dialect || - metadata.getDatabase().getDialect() instanceof CockroachDialect ) { + if ( dialect.getNationalizationSupport() != NationalizationSupport.EXPLICIT ) { // See issue HHH-10693 assertSame( CharacterType.INSTANCE, prop.getType() ); } diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/StringNationalizedTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/StringNationalizedTest.java new file mode 100644 index 0000000000..2b2ac0881a --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/StringNationalizedTest.java @@ -0,0 +1,86 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * See the lgpl.txt file in the root directory or . + */ +package org.hibernate.orm.test.nationalized; + +import java.util.List; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Table; + +import org.hibernate.annotations.Nationalized; +import org.hibernate.dialect.OracleDialect; +import org.hibernate.dialect.PostgreSQLDialect; +import org.hibernate.query.Query; + +import org.hibernate.testing.TestForIssue; +import org.hibernate.testing.orm.junit.DomainModel; +import org.hibernate.testing.orm.junit.RequiresDialect; +import org.hibernate.testing.orm.junit.RequiresDialects; +import org.hibernate.testing.orm.junit.SessionFactory; +import org.hibernate.testing.orm.junit.SessionFactoryScope; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.core.Is.is; + +/** + * @author Andrea Boriero + */ +@TestForIssue(jiraKey = "10495") +@RequiresDialects( + value = { + @RequiresDialect(value = OracleDialect.class, version = 1000), + @RequiresDialect(value = PostgreSQLDialect.class, version = 810) + }) +@DomainModel( + annotatedClasses = StringNationalizedTest.NationalizedEntity.class +) +@SessionFactory +public class StringNationalizedTest { + + @AfterEach + public void tearDown(SessionFactoryScope scope) { + scope.inTransaction( + session -> { + session.createQuery( "delete from NationalizedEntity" ).executeUpdate(); + } + ); + } + + @Test + public void testSaveEntityWithNationalizedProperty(SessionFactoryScope scope) { + scope.inTransaction( + session -> { + NationalizedEntity ne = new NationalizedEntity(); + ne.name = "Hello"; + session.save( ne ); + } + ); + + scope.inSession( + session -> { + final Query query = session.createQuery( "from NationalizedEntity where name = :name" ); + query.setParameter( "name", "Hello" ); + final List list = query.list(); + assertThat( list.size(), is( 1 ) ); + } + ); + } + + @Entity(name = "NationalizedEntity") + @Table(name = "NATIONALIZED_ENTITY") + public static class NationalizedEntity { + @Id + @GeneratedValue + private long id; + + @Nationalized + String name; + } +} diff --git a/hibernate-core/src/test/java/org/hibernate/test/nationalized/UseNationalizedCharDataSettingTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/UseNationalizedCharDataSettingTest.java similarity index 85% rename from hibernate-core/src/test/java/org/hibernate/test/nationalized/UseNationalizedCharDataSettingTest.java rename to hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/UseNationalizedCharDataSettingTest.java index 4bfeb87251..7f6381bf3c 100644 --- a/hibernate-core/src/test/java/org/hibernate/test/nationalized/UseNationalizedCharDataSettingTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/nationalized/UseNationalizedCharDataSettingTest.java @@ -4,7 +4,7 @@ * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or . */ -package org.hibernate.test.nationalized; +package org.hibernate.orm.test.nationalized; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -16,8 +16,8 @@ import org.hibernate.boot.registry.StandardServiceRegistry; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.AvailableSettings; -import org.hibernate.dialect.CockroachDialect; -import org.hibernate.dialect.PostgreSQL81Dialect; +import org.hibernate.dialect.Dialect; +import org.hibernate.dialect.NationalizationSupport; import org.hibernate.mapping.PersistentClass; import org.hibernate.mapping.Property; import org.hibernate.type.CharacterNCharType; @@ -39,7 +39,7 @@ */ public class UseNationalizedCharDataSettingTest extends BaseUnitTestCase { @Test - @TestForIssue( jiraKey = "HHH-10528" ) + @TestForIssue(jiraKey = "HHH-10528") public void testSetting() { final StandardServiceRegistry ssr = new StandardServiceRegistryBuilder() .applySetting( AvailableSettings.USE_NATIONALIZED_CHARACTER_DATA, true ) @@ -52,11 +52,12 @@ public void testSetting() { final Metadata metadata = ms.buildMetadata(); final PersistentClass pc = metadata.getEntityBinding( NationalizedBySettingEntity.class.getName() ); final Property nameAttribute = pc.getProperty( "name" ); - if(metadata.getDatabase().getDialect() instanceof PostgreSQL81Dialect || - metadata.getDatabase().getDialect() instanceof CockroachDialect ){ + final Dialect dialect = metadata.getDatabase().getDialect(); + if ( dialect.getNationalizationSupport() != NationalizationSupport.EXPLICIT ) { // See issue HHH-10693 assertSame( StringType.INSTANCE, nameAttribute.getType() ); - }else { + } + else { assertSame( StringNVarcharType.INSTANCE, nameAttribute.getType() ); } @@ -67,7 +68,7 @@ public void testSetting() { } @Test - @TestForIssue( jiraKey = "HHH-11205" ) + @TestForIssue(jiraKey = "HHH-11205") public void testSettingOnCharType() { final StandardServiceRegistry ssr = new StandardServiceRegistryBuilder() .applySetting( AvailableSettings.USE_NATIONALIZED_CHARACTER_DATA, true ) @@ -80,10 +81,11 @@ public void testSettingOnCharType() { final Metadata metadata = ms.buildMetadata(); final PersistentClass pc = metadata.getEntityBinding( NationalizedBySettingEntity.class.getName() ); final Property nameAttribute = pc.getProperty( "flag" ); - if(metadata.getDatabase().getDialect() instanceof PostgreSQL81Dialect || - metadata.getDatabase().getDialect() instanceof CockroachDialect ){ + final Dialect dialect = metadata.getDatabase().getDialect(); + if ( dialect.getNationalizationSupport() != NationalizationSupport.EXPLICIT ) { assertSame( CharacterType.INSTANCE, nameAttribute.getType() ); - }else { + } + else { assertSame( CharacterNCharType.INSTANCE, nameAttribute.getType() ); } diff --git a/hibernate-core/src/test/java/org/hibernate/test/nationalized/NationalizedLobFieldTest.java b/hibernate-core/src/test/java/org/hibernate/test/nationalized/NationalizedLobFieldTest.java deleted file mode 100644 index aa23fac538..0000000000 --- a/hibernate-core/src/test/java/org/hibernate/test/nationalized/NationalizedLobFieldTest.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Hibernate, Relational Persistence for Idiomatic Java - * - * License: GNU Lesser General Public License (LGPL), version 2.1 or later. - * See the lgpl.txt file in the root directory or . - */ -package org.hibernate.test.nationalized; - -import static junit.framework.TestCase.assertNotNull; -import static junit.framework.TestCase.fail; -import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertThat; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Lob; -import javax.persistence.Table; - -import org.hibernate.Session; -import org.hibernate.annotations.Nationalized; -import org.hibernate.cfg.AvailableSettings; -import org.hibernate.cfg.Configuration; -import org.hibernate.resource.transaction.spi.TransactionStatus; -import org.hibernate.testing.DialectChecks; -import org.hibernate.testing.RequiresDialectFeature; -import org.hibernate.testing.TestForIssue; -import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; -import org.junit.Test; - -/** - * @author Andrea Boriero - */ -@TestForIssue(jiraKey = "HHH-10364") -@RequiresDialectFeature(DialectChecks.SupportsNClob.class) -public class NationalizedLobFieldTest extends BaseCoreFunctionalTestCase { - - @Override - protected Class[] getAnnotatedClasses() { - return new Class[] {MyEntity.class}; - } - - @Override - protected void configure(Configuration configuration) { - configuration.setProperty( AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, "false" ); - } - - @Test - public void testNationalization() { - Session s = openSession(); - s.getTransaction().begin(); - try { - MyEntity e = new MyEntity( 1L ); - e.setState( "UK" ); - s.save( e ); - s.getTransaction().commit(); - } - catch (Exception e) { - if ( s.getTransaction().getStatus() != TransactionStatus.FAILED_COMMIT ) { - s.getTransaction().rollback(); - } - fail( e.getMessage() ); - } - finally { - s.close(); - } - - s = openSession(); - try { - MyEntity myEntity = s.get( MyEntity.class, 1L ); - assertNotNull( myEntity ); - assertThat( myEntity.getState(), is( "UK" ) ); - } - finally { - s.close(); - } - - } - - @Entity(name = "MyEntity") - @Table(name = "my_entity") - public static class MyEntity { - @Id - private long id; - - @Lob - @Nationalized - private String state; - - public MyEntity() { - } - - public MyEntity(long id) { - this.id = id; - } - - public long getId() { - return id; - } - - public String getState() { - return state; - } - - public void setState(String state) { - this.state = state; - } - } -} diff --git a/hibernate-core/src/test/java/org/hibernate/test/nationalized/StringNationalizedTest.java b/hibernate-core/src/test/java/org/hibernate/test/nationalized/StringNationalizedTest.java deleted file mode 100644 index 606c2e21b0..0000000000 --- a/hibernate-core/src/test/java/org/hibernate/test/nationalized/StringNationalizedTest.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Hibernate, Relational Persistence for Idiomatic Java - * - * License: GNU Lesser General Public License (LGPL), version 2.1 or later. - * See the lgpl.txt file in the root directory or . - */ -package org.hibernate.test.nationalized; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.Table; -import java.util.List; - -import org.hibernate.query.Query; -import org.hibernate.Session; -import org.hibernate.annotations.Nationalized; -import org.hibernate.dialect.Oracle10gDialect; -import org.hibernate.dialect.PostgreSQL81Dialect; -import org.hibernate.resource.transaction.spi.TransactionStatus; - -import org.junit.After; -import org.junit.Test; - -import org.hibernate.testing.RequiresDialect; -import org.hibernate.testing.TestForIssue; -import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; - -import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertThat; - -/** - * @author Andrea Boriero - */ -@TestForIssue(jiraKey = "10495") -@RequiresDialect(value = {Oracle10gDialect.class, PostgreSQL81Dialect.class}) -public class StringNationalizedTest extends BaseCoreFunctionalTestCase { - - @Override - protected Class[] getAnnotatedClasses() { - return new Class[] {NationalizedEntity.class}; - } - - @After - public void tearDown() { - Session s = openSession(); - s.getTransaction().begin(); - try { - final Query query = s.createQuery( "delete from NationalizedEntity" ); - query.executeUpdate(); - s.getTransaction().commit(); - } - catch (RuntimeException e) { - if ( s.getTransaction().getStatus() == TransactionStatus.ACTIVE ) { - s.getTransaction().rollback(); - } - throw e; - } - finally { - s.close(); - } - } - - @Test - public void testSaveEntityWithNationalizedProperty() { - Session s = openSession(); - s.getTransaction().begin(); - try { - NationalizedEntity ne = new NationalizedEntity(); - ne.name = "Hello"; - s.save( ne ); - s.getTransaction().commit(); - } - catch (RuntimeException e) { - if ( s.getTransaction().getStatus() == TransactionStatus.ACTIVE ) { - s.getTransaction().rollback(); - } - throw e; - } - finally { - s.close(); - } - - s = openSession(); - try { - final Query query = s.createQuery( "from NationalizedEntity where name = :name" ); - query.setParameter( "name", "Hello" ); - final List list = query.list(); - assertThat( list.size(), is( 1 ) ); - } - finally { - s.close(); - } - } - - @Entity(name = "NationalizedEntity") - @Table(name = "NATIONALIZED_ENTITY") - public static class NationalizedEntity { - @Id - @GeneratedValue - private long id; - - @Nationalized - String name; - } -}