diff --git a/src/test/java/com/avaje/tests/model/survey/Category.java b/src/test/java/com/avaje/tests/model/survey/Category.java index 25936c853..3e5969a89 100644 --- a/src/test/java/com/avaje/tests/model/survey/Category.java +++ b/src/test/java/com/avaje/tests/model/survey/Category.java @@ -1,32 +1,38 @@ package com.avaje.tests.model.survey; -import javax.persistence.*; -import java.util.*; +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.OrderBy; +import java.util.List; @Entity public class Category { - @Id - public Long id; + @Id + public Long id; - @ManyToOne - @JoinColumn(name = "surveyObjectId") - private Survey survey; + @ManyToOne + @JoinColumn(name = "surveyObjectId") + private Survey survey; - @OneToMany(mappedBy = "category", cascade = {CascadeType.PERSIST, CascadeType.MERGE}) - @OrderBy("sequenceNumber") - private List groups; + @OneToMany(mappedBy = "category", cascade = {CascadeType.PERSIST, CascadeType.MERGE}) + @OrderBy("sequenceNumber") + private List groups; - private int sequenceNumber; + private int sequenceNumber; - public List getGroups() { - return groups; - } + public List getGroups() { + return groups; + } - public void setGroups(List groups) { - this.groups = groups; - } + public void setGroups(List groups) { + this.groups = groups; + } - public void setSequenceNumber(int number) { - this.sequenceNumber = number; - } + public void setSequenceNumber(int number) { + this.sequenceNumber = number; + } } \ No newline at end of file diff --git a/src/test/java/com/avaje/tests/model/survey/Group.java b/src/test/java/com/avaje/tests/model/survey/Group.java index 064ad7e95..40891789a 100644 --- a/src/test/java/com/avaje/tests/model/survey/Group.java +++ b/src/test/java/com/avaje/tests/model/survey/Group.java @@ -1,33 +1,41 @@ package com.avaje.tests.model.survey; -import javax.persistence.*; -import java.util.*; +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.OrderBy; +import javax.persistence.Table; +import java.util.ArrayList; +import java.util.List; @Entity -@Table(name="survey_group") +@Table(name = "survey_group") public class Group { - @Id - public Long id; + @Id + public Long id; - @ManyToOne - @JoinColumn(name = "categoryObjectId") - private Category category; + @ManyToOne + @JoinColumn(name = "categoryObjectId") + private Category category; - @OneToMany(mappedBy = "group", cascade = {CascadeType.PERSIST, CascadeType.MERGE}) - @OrderBy("sequenceNumber") - private List questions = new ArrayList(); + @OneToMany(mappedBy = "group", cascade = {CascadeType.PERSIST, CascadeType.MERGE}) + @OrderBy("sequenceNumber") + private List questions = new ArrayList(); - private int sequenceNumber; + private int sequenceNumber; - public List getQuestions() { - return questions; - } + public List getQuestions() { + return questions; + } - public void setQuestions(List questions) { - this.questions = questions; - } + public void setQuestions(List questions) { + this.questions = questions; + } - public void setSequenceNumber(int number) { - this.sequenceNumber = number; - } + public void setSequenceNumber(int number) { + this.sequenceNumber = number; + } } \ No newline at end of file diff --git a/src/test/java/com/avaje/tests/model/survey/Question.java b/src/test/java/com/avaje/tests/model/survey/Question.java index 5c652a214..f24b35da8 100644 --- a/src/test/java/com/avaje/tests/model/survey/Question.java +++ b/src/test/java/com/avaje/tests/model/survey/Question.java @@ -1,20 +1,23 @@ package com.avaje.tests.model.survey; -import javax.persistence.*; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; @Entity public class Question { - @Id - public Long id; + @Id + public Long id; - @ManyToOne - @JoinColumn(name = "groupObjectId") - private Group group; + @ManyToOne + @JoinColumn(name = "groupObjectId") + private Group group; - private int sequenceNumber; + private int sequenceNumber; - public void setSequenceNumber(int number) { - this.sequenceNumber = number; - } + public void setSequenceNumber(int number) { + this.sequenceNumber = number; + } } \ No newline at end of file diff --git a/src/test/java/com/avaje/tests/model/survey/Survey.java b/src/test/java/com/avaje/tests/model/survey/Survey.java index 3c6d9d477..089689bdc 100644 --- a/src/test/java/com/avaje/tests/model/survey/Survey.java +++ b/src/test/java/com/avaje/tests/model/survey/Survey.java @@ -1,22 +1,26 @@ package com.avaje.tests.model.survey; -import javax.persistence.*; -import java.util.*; +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.OrderBy; +import java.util.List; @Entity public class Survey { - @Id - public Long id; + @Id + public Long id; - @OneToMany(mappedBy = "survey", cascade = {CascadeType.PERSIST, CascadeType.MERGE}) - @OrderBy("sequenceNumber") - private List categories; + @OneToMany(mappedBy = "survey", cascade = {CascadeType.PERSIST, CascadeType.MERGE}) + @OrderBy("sequenceNumber") + private List categories; - public List getCategories() { - return categories; - } + public List getCategories() { + return categories; + } - public void setCategories(List categories) { - this.categories = categories; - } + public void setCategories(List categories) { + this.categories = categories; + } } \ No newline at end of file diff --git a/src/test/java/com/avaje/tests/model/survey/TestOrderByFetch.java b/src/test/java/com/avaje/tests/model/survey/TestOrderByFetch.java index e24599b3d..103b90d67 100644 --- a/src/test/java/com/avaje/tests/model/survey/TestOrderByFetch.java +++ b/src/test/java/com/avaje/tests/model/survey/TestOrderByFetch.java @@ -2,16 +2,13 @@ package com.avaje.tests.model.survey; import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; -import com.avaje.ebean.OrderBy; -import com.avaje.ebean.Query; - -import org.avaje.ebeantest.LoggedSqlCollector; -import org.junit.Assert; +import org.jetbrains.annotations.NotNull; import org.junit.Test; -import java.util.*; +import java.util.ArrayList; +import java.util.List; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; public class TestOrderByFetch extends BaseTestCase { @@ -24,44 +21,52 @@ public class TestOrderByFetch extends BaseTestCase { category.setSequenceNumber(1); categories.add(category); survey.setCategories(categories); - List groups = new ArrayList(); - Group group1 = new Group(); - group1.setSequenceNumber(1); - Group group2 = new Group(); - group2.setSequenceNumber(2); + List groups = new ArrayList(); + Group group1 = group(1); + Group group2 = group(2); groups.add(group1); groups.add(group2); category.setGroups(groups); List questionListGroup1 = new ArrayList(); - Question q1 = new Question(); - q1.setSequenceNumber(1); - Question q2 = new Question(); - q2.setSequenceNumber(2); - questionListGroup1.add(q1); - questionListGroup1.add(q2); + questionListGroup1.add(question(1)); + questionListGroup1.add(question(2)); + questionListGroup1.add(question(3)); group1.setQuestions(questionListGroup1); List questionListGroup2 = new ArrayList(); - Question q3 = new Question(); - q3.setSequenceNumber(1); - Question q4 = new Question(); - q4.setSequenceNumber(2); - questionListGroup2.add(q3); - questionListGroup2.add(q4); + questionListGroup2.add(question(1)); + questionListGroup2.add(question(2)); group2.setQuestions(questionListGroup2); Ebean.save(survey); Survey foundSurvey = Ebean.find(Survey.class) - .fetch("categories") - .fetch("categories.groups") - .fetch("categories.groups.questions") - .findUnique(); + .setDisableLazyLoading(true) + .fetch("categories") + .fetch("categories.groups") + .fetch("categories.groups.questions") + .findUnique(); assertEquals(1, foundSurvey.getCategories().size()); - assertEquals(2, foundSurvey.getCategories().get(0).getGroups().size()); - + + Category category1 = foundSurvey.getCategories().get(0); + List groups2 = category1.getGroups(); + assertEquals(2, groups2.size()); + } + + @NotNull + private Group group(int number) { + Group group1 = new Group(); + group1.setSequenceNumber(number); + return group1; + } + + @NotNull + private Question question(int sequence) { + Question q2 = new Question(); + q2.setSequenceNumber(sequence); + return q2; } }