From c99bec4940ae68a7cf077ce8df40f9e9b7aef544 Mon Sep 17 00:00:00 2001 From: rbygrave Date: Wed, 29 Oct 2014 00:07:25 +1300 Subject: [PATCH] Add First/Second/SuperSecond test --- .../avaje/tests/model/basic/first/First.java | 45 +++++++++++++++++++ .../avaje/tests/model/basic/first/Second.java | 32 +++++++++++++ .../tests/model/basic/first/SuperSecond.java | 23 ++++++++++ .../model/basic/first/TestFirstSecond.java | 29 ++++++++++++ 4 files changed, 129 insertions(+) create mode 100644 src/test/java/com/avaje/tests/model/basic/first/First.java create mode 100644 src/test/java/com/avaje/tests/model/basic/first/Second.java create mode 100644 src/test/java/com/avaje/tests/model/basic/first/SuperSecond.java create mode 100644 src/test/java/com/avaje/tests/model/basic/first/TestFirstSecond.java diff --git a/src/test/java/com/avaje/tests/model/basic/first/First.java b/src/test/java/com/avaje/tests/model/basic/first/First.java new file mode 100644 index 000000000..f31556dc6 --- /dev/null +++ b/src/test/java/com/avaje/tests/model/basic/first/First.java @@ -0,0 +1,45 @@ +package com.avaje.tests.model.basic.first; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "f_first") +public class First { + + @Id + Long id; + + String name; + + @OneToOne(mappedBy = "first", cascade = CascadeType.ALL) + Second second; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Second getSecond() { + return second; + } + + public void setSecond(Second second) { + this.second = second; + } + +} \ No newline at end of file diff --git a/src/test/java/com/avaje/tests/model/basic/first/Second.java b/src/test/java/com/avaje/tests/model/basic/first/Second.java new file mode 100644 index 000000000..585011585 --- /dev/null +++ b/src/test/java/com/avaje/tests/model/basic/first/Second.java @@ -0,0 +1,32 @@ +package com.avaje.tests.model.basic.first; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "f_second") +public class Second extends SuperSecond { + + @Id + Long id; + + String title; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + +} \ No newline at end of file diff --git a/src/test/java/com/avaje/tests/model/basic/first/SuperSecond.java b/src/test/java/com/avaje/tests/model/basic/first/SuperSecond.java new file mode 100644 index 000000000..c3d7073bd --- /dev/null +++ b/src/test/java/com/avaje/tests/model/basic/first/SuperSecond.java @@ -0,0 +1,23 @@ +package com.avaje.tests.model.basic.first; + +import javax.persistence.CascadeType; +import javax.persistence.JoinColumn; +import javax.persistence.MappedSuperclass; +import javax.persistence.OneToOne; + +@MappedSuperclass +public abstract class SuperSecond { + + @OneToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE }) + @JoinColumn(name = "first") + protected First first; + + public First getFirst() { + return first; + } + + public void setFirst(First first) { + this.first = first; + } + +} diff --git a/src/test/java/com/avaje/tests/model/basic/first/TestFirstSecond.java b/src/test/java/com/avaje/tests/model/basic/first/TestFirstSecond.java new file mode 100644 index 000000000..66de5b704 --- /dev/null +++ b/src/test/java/com/avaje/tests/model/basic/first/TestFirstSecond.java @@ -0,0 +1,29 @@ +package com.avaje.tests.model.basic.first; + +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; +import com.avaje.ebean.Ebean; + +public class TestFirstSecond extends BaseTestCase { + + @Test + public void test() { + + First first = new First(); + first.setName("first"); + Ebean.save(first); + + Second second = new Second(); + second.setTitle("John"); + second.setFirst(first); + Ebean.save(second); + + + second.getFirst().setName("changed"); + Ebean.save(second); + Ebean.save(first); + + + } +}