From 03c9782d63445f14ea9fbb13da9f0dd5078e5584 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 18 Jan 2023 00:07:04 +1300 Subject: [PATCH] #2915 - Failing test for - generator param of @GeneratedValue is not ignored when using GenerationType.AUTO on db where this uses identity --- .../java/org/tests/idkeys/TestEaObject.java | 18 ++++++++++ .../java/org/tests/idkeys/db/EaObject.java | 36 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 ebean-test/src/test/java/org/tests/idkeys/TestEaObject.java create mode 100644 ebean-test/src/test/java/org/tests/idkeys/db/EaObject.java diff --git a/ebean-test/src/test/java/org/tests/idkeys/TestEaObject.java b/ebean-test/src/test/java/org/tests/idkeys/TestEaObject.java new file mode 100644 index 000000000..61c21d928 --- /dev/null +++ b/ebean-test/src/test/java/org/tests/idkeys/TestEaObject.java @@ -0,0 +1,18 @@ +package org.tests.idkeys; + +import io.ebean.DB; +import io.ebean.xtest.BaseTestCase; +import org.junit.jupiter.api.Test; +import org.tests.idkeys.db.EaObject; + +import static org.assertj.core.api.Assertions.assertThat; + +class TestEaObject extends BaseTestCase { + + @Test + void insert() { + EaObject bean = new EaObject("fred"); + DB.save(bean); + assertThat(bean.id()).isGreaterThan(0); + } +} diff --git a/ebean-test/src/test/java/org/tests/idkeys/db/EaObject.java b/ebean-test/src/test/java/org/tests/idkeys/db/EaObject.java new file mode 100644 index 000000000..a763831ba --- /dev/null +++ b/ebean-test/src/test/java/org/tests/idkeys/db/EaObject.java @@ -0,0 +1,36 @@ +package org.tests.idkeys.db; + +import io.ebean.Model; + +import javax.persistence.*; + +@Entity +@Table(name = "T_OBJECT") +public class EaObject extends Model { + + @Id + @Column(name = "OBJECT_ID", nullable = false) + @GeneratedValue( + strategy = GenerationType.AUTO, + generator = "t_object_sequence_generator" + ) + @SequenceGenerator( + name = "t_object_sequence_generator", + sequenceName = "OBJECT_ID_SEQ" + ) + long id; + + final String name; + + public EaObject(String name) { + this.name = name; + } + + public long id() { + return id; + } + + public String name() { + return name; + } +}