From 27042f562fc6fff60082dd07018568f033f13847 Mon Sep 17 00:00:00 2001 From: Gavin King Date: Sun, 12 May 2024 17:41:50 +0200 Subject: [PATCH] test for @SequenceGenerator/@TableGenerator with no name Signed-off-by: Gavin King --- .../entity/ClassLevelGeneratorTest.java | 45 +++++++++++++++++++ .../entity/FieldLevelGeneratorTest.java | 45 +++++++++++++++++++ .../pkg/PackageLevelGeneratorTest.java | 41 +++++++++++++++++ .../id/generators/pkg/package-info.java | 6 +++ 4 files changed, 137 insertions(+) create mode 100644 hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/entity/ClassLevelGeneratorTest.java create mode 100644 hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/entity/FieldLevelGeneratorTest.java create mode 100644 hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/pkg/PackageLevelGeneratorTest.java create mode 100644 hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/pkg/package-info.java diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/entity/ClassLevelGeneratorTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/entity/ClassLevelGeneratorTest.java new file mode 100644 index 0000000000..cf16e6c529 --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/entity/ClassLevelGeneratorTest.java @@ -0,0 +1,45 @@ +package org.hibernate.orm.test.annotations.id.generators.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.SequenceGenerator; +import jakarta.persistence.TableGenerator; +import org.hibernate.testing.orm.junit.DomainModel; +import org.hibernate.testing.orm.junit.SessionFactory; +import org.hibernate.testing.orm.junit.SessionFactoryScope; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@SessionFactory +@DomainModel(annotatedClasses = + {ClassLevelGeneratorTest.EntityWithAnonSequenceGenerator.class, + ClassLevelGeneratorTest.EntityWithAnonTableGenerator.class}) +public class ClassLevelGeneratorTest { + @Test + void testAnonGenerator(SessionFactoryScope scope) { + scope.inSession(s-> { + EntityWithAnonSequenceGenerator entity1 = new EntityWithAnonSequenceGenerator(); + EntityWithAnonTableGenerator entity2 = new EntityWithAnonTableGenerator(); + s.persist(entity1); + s.persist(entity2); + assertEquals(42, entity1.id); + assertEquals(69, entity2.id); + }); + } + @Entity + @SequenceGenerator(initialValue = 42) + static class EntityWithAnonSequenceGenerator { + @Id + @GeneratedValue + long id; + } + @Entity + @TableGenerator(initialValue = 69) + static class EntityWithAnonTableGenerator { + @Id + @GeneratedValue + long id; + } +} diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/entity/FieldLevelGeneratorTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/entity/FieldLevelGeneratorTest.java new file mode 100644 index 0000000000..3bd9ab6229 --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/entity/FieldLevelGeneratorTest.java @@ -0,0 +1,45 @@ +package org.hibernate.orm.test.annotations.id.generators.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.SequenceGenerator; +import jakarta.persistence.TableGenerator; +import org.hibernate.testing.orm.junit.DomainModel; +import org.hibernate.testing.orm.junit.SessionFactory; +import org.hibernate.testing.orm.junit.SessionFactoryScope; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@SessionFactory +@DomainModel(annotatedClasses = + {FieldLevelGeneratorTest.EntityWithAnonSequenceGenerator.class, + FieldLevelGeneratorTest.EntityWithAnonTableGenerator.class}) +public class FieldLevelGeneratorTest { + @Test + void testAnonGenerator(SessionFactoryScope scope) { + scope.inSession(s-> { + EntityWithAnonSequenceGenerator entity1 = new EntityWithAnonSequenceGenerator(); + EntityWithAnonTableGenerator entity2 = new EntityWithAnonTableGenerator(); + s.persist(entity1); + s.persist(entity2); + assertEquals(42, entity1.id); + assertEquals(69, entity2.id); + }); + } + @Entity + static class EntityWithAnonSequenceGenerator { + @Id + @GeneratedValue + @SequenceGenerator(initialValue = 42) + long id; + } + @Entity + static class EntityWithAnonTableGenerator { + @Id + @GeneratedValue + @TableGenerator(initialValue = 69) + long id; + } +} diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/pkg/PackageLevelGeneratorTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/pkg/PackageLevelGeneratorTest.java new file mode 100644 index 0000000000..9337aaecd9 --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/pkg/PackageLevelGeneratorTest.java @@ -0,0 +1,41 @@ +package org.hibernate.orm.test.annotations.id.generators.pkg; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import org.hibernate.testing.orm.junit.DomainModel; +import org.hibernate.testing.orm.junit.SessionFactory; +import org.hibernate.testing.orm.junit.SessionFactoryScope; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@SessionFactory +@DomainModel(annotatedClasses = + {PackageLevelGeneratorTest.EntityWithAnonSequenceGenerator.class, + PackageLevelGeneratorTest.EntityWithAnonTableGenerator.class}) +public class PackageLevelGeneratorTest { + @Test + void testAnonGenerator(SessionFactoryScope scope) { + scope.inSession(s-> { + EntityWithAnonSequenceGenerator entity1 = new EntityWithAnonSequenceGenerator(); + EntityWithAnonTableGenerator entity2 = new EntityWithAnonTableGenerator(); + s.persist(entity1); + s.persist(entity2); + assertEquals(42, entity1.id); + assertEquals(69, entity2.id); + }); + } + @Entity + static class EntityWithAnonSequenceGenerator { + @Id + @GeneratedValue + long id; + } + @Entity + static class EntityWithAnonTableGenerator { + @Id + @GeneratedValue + long id; + } +} diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/pkg/package-info.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/pkg/package-info.java new file mode 100644 index 0000000000..0094e96be7 --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/id/generators/pkg/package-info.java @@ -0,0 +1,6 @@ +@SequenceGenerator(initialValue = 42) +@TableGenerator(initialValue = 69) +package org.hibernate.orm.test.annotations.id.generators.pkg; + +import jakarta.persistence.SequenceGenerator; +import jakarta.persistence.TableGenerator; \ No newline at end of file