From 4c317f11ae097acd5414bf7414b2e592b1ee3d68 Mon Sep 17 00:00:00 2001 From: rbygrave Date: Sun, 23 May 2021 22:21:05 +1200 Subject: [PATCH] Add additional test for PrimaryKeyJoinColumn --- .../tests/model/onetoone/calcd/CalcDData.java | 46 +++++++++++++++++++ .../model/onetoone/calcd/CalcDInput.java | 42 +++++++++++++++++ .../TestOneToOnePrimaryKeyJoinMapping.java | 26 +++++++++++ 3 files changed, 114 insertions(+) create mode 100644 ebean-core/src/test/java/org/tests/model/onetoone/calcd/CalcDData.java create mode 100644 ebean-core/src/test/java/org/tests/model/onetoone/calcd/CalcDInput.java create mode 100644 ebean-core/src/test/java/org/tests/model/onetoone/calcd/TestOneToOnePrimaryKeyJoinMapping.java diff --git a/ebean-core/src/test/java/org/tests/model/onetoone/calcd/CalcDData.java b/ebean-core/src/test/java/org/tests/model/onetoone/calcd/CalcDData.java new file mode 100644 index 000000000..eef657be5 --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/onetoone/calcd/CalcDData.java @@ -0,0 +1,46 @@ +package org.tests.model.onetoone.calcd; + +import io.ebean.Model; +import io.ebean.annotation.ConstraintMode; +import io.ebean.annotation.DbForeignKey; + +import javax.persistence.*; + +@Entity +@Table(name = "calcd_data") +public class CalcDData extends Model { + + @Id + private Integer id; + + @OneToOne(optional = false, cascade = CascadeType.ALL) + @DbForeignKey(onDelete = ConstraintMode.CASCADE) + @PrimaryKeyJoinColumn//(name = "Id", referencedColumnName = "Id") + private CalcDInput input; + + private final String name; + + public CalcDData(String name) { + this.name = name; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public CalcDInput getInput() { + return input; + } + + public void setInput(CalcDInput input) { + this.input = input; + } + + public String getName() { + return name; + } +} diff --git a/ebean-core/src/test/java/org/tests/model/onetoone/calcd/CalcDInput.java b/ebean-core/src/test/java/org/tests/model/onetoone/calcd/CalcDInput.java new file mode 100644 index 000000000..00704eb27 --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/onetoone/calcd/CalcDInput.java @@ -0,0 +1,42 @@ +package org.tests.model.onetoone.calcd; + +import io.ebean.Model; + +import javax.persistence.*; + +@Entity +@Table(name = "calcd_input") +public class CalcDInput extends Model { + + @Id + private Integer id; + + @OneToOne(optional = false, fetch = FetchType.EAGER, orphanRemoval = true, mappedBy = "input") + private CalcDData data; + + private final String name; + + public CalcDInput(String name) { + this.name = name; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public CalcDData getData() { + return data; + } + + public void setData(CalcDData data) { + this.data = data; + } +} diff --git a/ebean-core/src/test/java/org/tests/model/onetoone/calcd/TestOneToOnePrimaryKeyJoinMapping.java b/ebean-core/src/test/java/org/tests/model/onetoone/calcd/TestOneToOnePrimaryKeyJoinMapping.java new file mode 100644 index 000000000..9e1aa68f0 --- /dev/null +++ b/ebean-core/src/test/java/org/tests/model/onetoone/calcd/TestOneToOnePrimaryKeyJoinMapping.java @@ -0,0 +1,26 @@ +package org.tests.model.onetoone.calcd; + +import io.ebean.DB; +import org.junit.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class TestOneToOnePrimaryKeyJoinMapping { + + @Test + public void test() { + + CalcDInput inputs = new CalcDInput("input0"); + + CalcDData data = new CalcDData("data0"); + inputs.setData(data); + inputs.save(); + + CalcDInput found = DB.find(CalcDInput.class, inputs.getId()); + + assertThat(found).isNotNull(); + assertThat(found.getName()).isEqualTo("input0"); + assertThat(found.getData().getName()).isEqualTo("data0"); + + } +}