Skip to content
This repository was archived by the owner on Oct 22, 2020. It is now read-only.

Commit 21f97c5

Browse files
committed
#40 - ENH: Support using Query beans to create FetchGroup
1 parent 1d6f792 commit 21f97c5

3 files changed

Lines changed: 27 additions & 1 deletion

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>io.ebean</groupId>
66
<artifactId>querybean-generator</artifactId>
7-
<version>11.42.2-SNAPSHOT</version>
7+
<version>11.43.1-SNAPSHOT</version>
88

99
<parent>
1010
<groupId>org.avaje</groupId>

src/main/java/io/ebean/querybean/generator/Constants.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,7 @@ interface Constants {
2525
String TYPEQUERYBEAN = "io.ebean.typequery.TypeQueryBean";
2626
String DATABASE = "io.ebean.Database";
2727
String DB = "io.ebean.DB";
28+
String FETCHGROUP = "io.ebean.FetchGroup";
29+
String QUERY = "io.ebean.Query";
2830

2931
}

src/main/java/io/ebean/querybean/generator/SimpleQueryBeanWriter.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import static io.ebean.querybean.generator.Constants.AT_TYPEQUERYBEAN;
1717
import static io.ebean.querybean.generator.Constants.DATABASE;
1818
import static io.ebean.querybean.generator.Constants.DB;
19+
import static io.ebean.querybean.generator.Constants.FETCHGROUP;
20+
import static io.ebean.querybean.generator.Constants.QUERY;
1921
import static io.ebean.querybean.generator.Constants.TQASSOCBEAN;
2022
import static io.ebean.querybean.generator.Constants.TQPROPERTY;
2123
import static io.ebean.querybean.generator.Constants.TQROOTBEAN;
@@ -73,6 +75,8 @@ private void gatherPropertyDetails() {
7375
importTypes.add(TQROOTBEAN);
7476
importTypes.add(TYPEQUERYBEAN);
7577
importTypes.add(DATABASE);
78+
importTypes.add(FETCHGROUP);
79+
importTypes.add(QUERY);
7680
if (dbName != null) {
7781
importTypes.add(DB);
7882
}
@@ -149,6 +153,8 @@ private void prepareAssocBeanImports() {
149153
importTypes.remove(DB);
150154
importTypes.remove(TQROOTBEAN);
151155
importTypes.remove(DATABASE);
156+
importTypes.remove(FETCHGROUP);
157+
importTypes.remove(QUERY);
152158
importTypes.add(TQASSOCBEAN);
153159
if (isEntity()) {
154160
importTypes.add(TQPROPERTY);
@@ -182,6 +188,16 @@ private void writeConstructors() {
182188
* Write the constructors for 'root' type query bean.
183189
*/
184190
private void writeRootBeanConstructor() {
191+
192+
writer.eol();
193+
writer.append(" /**").eol();
194+
writer.append(" * Return a query bean used to build a FetchGroup.").eol();
195+
writer.append(" */").eol();
196+
writer.append(" public static Q%s forFetchGroup() {", shortName).eol();
197+
writer.append(" return new Q%s(FetchGroup.queryFor(%s.class));", shortName, shortName).eol();
198+
writer.append(" }").eol();
199+
writer.eol();
200+
185201
writer.eol();
186202
writer.append(" /**").eol();
187203
writer.append(" * Construct with a given Database.").eol();
@@ -210,6 +226,14 @@ private void writeRootBeanConstructor() {
210226
writer.append(" private Q%s(boolean dummy) {", shortName).eol();
211227
writer.append(" super(dummy);").eol();
212228
writer.append(" }").eol();
229+
230+
writer.eol();
231+
writer.append(" /**").eol();
232+
writer.append(" * Private constructor for FetchGroup building.").eol();
233+
writer.append(" */").eol();
234+
writer.append(" private Q%s(Query<%s> fetchGroupQuery) {", shortName, shortName).eol();
235+
writer.append(" super(fetchGroupQuery);").eol();
236+
writer.append(" }").eol();
213237
}
214238

215239
private void writeAssocBeanFetch() {

0 commit comments

Comments
 (0)