Skip to content

Commit a2deb40

Browse files
committed
chore: refactor test entity models to use Lazy fetch by default
1 parent ad32245 commit a2deb40

File tree

8 files changed

+44
-9
lines changed

8 files changed

+44
-9
lines changed

graphql-jpa-query-schema/src/test/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutorTests.java

+2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.springframework.boot.test.context.SpringBootTest;
3030
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
3131
import org.springframework.context.annotation.Bean;
32+
import org.springframework.test.context.TestPropertySource;
3233
import org.springframework.test.context.junit4.SpringRunner;
3334
import org.springframework.util.Assert;
3435

@@ -37,6 +38,7 @@
3738

3839
@RunWith(SpringRunner.class)
3940
@SpringBootTest(webEnvironment=WebEnvironment.NONE)
41+
@TestPropertySource({"classpath:hibernate.properties"})
4042
public class GraphQLExecutorTests {
4143

4244
@SpringBootApplication

graphql-jpa-query-schema/src/test/java/com/introproventures/graphql/jpa/query/schema/StarwarsQueryExecutorTests.java

+23-2
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,15 @@
3232
import org.springframework.boot.autoconfigure.SpringBootApplication;
3333
import org.springframework.boot.test.context.SpringBootTest;
3434
import org.springframework.context.annotation.Bean;
35+
import org.springframework.test.context.TestPropertySource;
3536
import org.springframework.test.context.junit4.SpringRunner;
3637

3738
import com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaExecutor;
3839
import com.introproventures.graphql.jpa.query.schema.impl.GraphQLJpaSchemaBuilder;
3940

4041
@RunWith(SpringRunner.class)
4142
@SpringBootTest
43+
@TestPropertySource({"classpath:hibernate.properties"})
4244
public class StarwarsQueryExecutorTests {
4345

4446
@SpringBootApplication
@@ -256,14 +258,33 @@ public void queryDeepNestingPlural() {
256258
+ "{name=Han Solo, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=R2-D2}, {name=Leia Organa}, {name=Luke Skywalker}]}, "
257259
+ "{name=Luke Skywalker, appearsIn=[A_NEW_HOPE, EMPIRE_STRIKES_BACK, RETURN_OF_THE_JEDI, THE_FORCE_AWAKENS], friends=[{name=C-3PO}, {name=R2-D2}, {name=Leia Organa}, {name=Han Solo}]}]}"
258260
+ "]}}";
259-
261+
260262
//when:
261263
Object result = executor.execute(query).getData();
262264

263265
//then:
264266
assertThat(result.toString()).isEqualTo(expected);
265267
}
266268

269+
@Test
270+
public void queryNestedDatabaseEnum() {
271+
//given:
272+
String query = "query { Humans { select { name, gender { id, code, parent { id } } } } }";
273+
274+
String expected = "{Humans={select=["
275+
+ "{name=Luke Skywalker, gender={id=0, code=Male, parent=null}}, "
276+
+ "{name=Darth Vader, gender={id=0, code=Male, parent=null}}, "
277+
+ "{name=Han Solo, gender={id=0, code=Male, parent=null}}, "
278+
+ "{name=Leia Organa, gender={id=1, code=Female, parent=null}}, "
279+
+ "{name=Wilhuff Tarkin, gender={id=0, code=Male, parent=null}}"
280+
+ "]}}";
281+
282+
//when:
283+
Object result = executor.execute(query).getData();
284+
285+
//then:
286+
assertThat(result.toString()).isEqualTo(expected);
287+
}
267288

268289
@Test
269290
public void queryWhereRoot() {
@@ -278,7 +299,7 @@ public void queryWhereRoot() {
278299
//then:
279300
assertThat(result.toString()).isEqualTo(expected);
280301
}
281-
302+
282303
@Test
283304
public void queryPaginationWithoutRecords() {
284305
//given:

graphql-jpa-query-schema/src/test/java/com/introproventures/graphql/jpa/query/schema/model/book/Author.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import javax.persistence.Column;
2525
import javax.persistence.ElementCollection;
2626
import javax.persistence.Entity;
27+
import javax.persistence.FetchType;
2728
import javax.persistence.Id;
2829
import javax.persistence.JoinColumn;
2930
import javax.persistence.OneToMany;
@@ -44,10 +45,10 @@ public class Author {
4445

4546
String name;
4647

47-
@OneToMany(mappedBy="author")
48+
@OneToMany(mappedBy="author", fetch=FetchType.LAZY)
4849
Collection<Book> books;
4950

50-
@ElementCollection
51+
@ElementCollection(fetch=FetchType.LAZY)
5152
@CollectionTable(name = "author_phone_numbers", joinColumns = @JoinColumn(name = "author_id"))
5253
@Column(name = "phone_number")
5354
private Set<String> phoneNumbers = new HashSet<>();

graphql-jpa-query-schema/src/test/java/com/introproventures/graphql/jpa/query/schema/model/book/Book.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import javax.persistence.Entity;
2020
import javax.persistence.EnumType;
2121
import javax.persistence.Enumerated;
22+
import javax.persistence.FetchType;
2223
import javax.persistence.Id;
2324
import javax.persistence.ManyToOne;
2425

@@ -32,7 +33,7 @@ public class Book {
3233

3334
String title;
3435

35-
@ManyToOne
36+
@ManyToOne(fetch=FetchType.LAZY)
3637
Author author;
3738

3839
@Enumerated(EnumType.STRING)

graphql-jpa-query-schema/src/test/java/com/introproventures/graphql/jpa/query/schema/model/starwars/Character.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import javax.persistence.Entity;
2323
import javax.persistence.EnumType;
2424
import javax.persistence.Enumerated;
25+
import javax.persistence.FetchType;
2526
import javax.persistence.Id;
2627
import javax.persistence.JoinColumn;
2728
import javax.persistence.JoinTable;
@@ -51,14 +52,14 @@ public abstract class Character {
5152
String name;
5253

5354
@GraphQLDescription("Who are the known friends to this character")
54-
@ManyToMany
55+
@ManyToMany(fetch=FetchType.LAZY)
5556
@JoinTable(name="character_friends",
5657
joinColumns=@JoinColumn(name="source_id", referencedColumnName="id"),
5758
inverseJoinColumns=@JoinColumn(name="friend_id", referencedColumnName="id"))
5859
Set<Character> friends;
5960

6061
@GraphQLDescription("What Star Wars episodes does this character appear in")
61-
@ElementCollection(targetClass = Episode.class)
62+
@ElementCollection(targetClass = Episode.class, fetch=FetchType.LAZY)
6263
@Enumerated(EnumType.ORDINAL)
6364
@OrderBy
6465
Set<Episode> appearsIn;

graphql-jpa-query-schema/src/test/java/com/introproventures/graphql/jpa/query/schema/model/starwars/CodeList.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.introproventures.graphql.jpa.query.schema.model.starwars;
1818

1919
import javax.persistence.Entity;
20+
import javax.persistence.FetchType;
2021
import javax.persistence.Id;
2122
import javax.persistence.JoinColumn;
2223
import javax.persistence.ManyToOne;
@@ -40,7 +41,7 @@ public class CodeList {
4041
boolean active;
4142
String description;
4243

43-
@ManyToOne
44+
@ManyToOne(fetch=FetchType.LAZY)
4445
@JoinColumn(name = "parent_id")
4546
CodeList parent;
4647

graphql-jpa-query-schema/src/test/java/com/introproventures/graphql/jpa/query/schema/model/starwars/Human.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class Human extends Character {
3535
@JoinColumn(name = "favorite_droid_id")
3636
Droid favoriteDroid;
3737

38-
@ManyToOne
38+
@ManyToOne(fetch=FetchType.LAZY)
3939
@JoinColumn(name = "gender_code_id")
4040
CodeList gender;
4141

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
hibernate.generate_statistics=true
2+
org.hibernate.stat=DEBUG
3+
spring.jpa.properties.hibernate.show_sql=true
4+
spring.jpa.properties.hibernate.format_sql=true
5+
6+
logging.level.org.hibernate=debug
7+
#logging.level.org.hibernate.type.descriptor.sql=trace
8+
#logging.level.org.hibernate.SQL=debug

0 commit comments

Comments
 (0)