#3251 - QueryBeans: Entities can not have same name as some Ebean API classes

This commit is contained in:
Rob Bygrave
2023-10-24 23:08:30 +13:00
parent 84f0ef9fce
commit acd538207f
2 changed files with 9 additions and 24 deletions
@@ -2,9 +2,8 @@ package io.ebean.querybean.generator;
interface Constants {
String AT_GENERATED = "@Generated(\"io.ebean.querybean.generator\")";
String AT_TYPEQUERYBEAN = "@TypeQueryBean(\"v1\")";
String AT_GENERATED = "@io.ebean.typequery.Generated(\"io.ebean.querybean.generator\")";
String AT_TYPEQUERYBEAN = "@io.ebean.typequery.TypeQueryBean(\"v1\")";
String GENERATED = "io.ebean.typequery.Generated";
String MAPPED_SUPERCLASS = "jakarta.persistence.MappedSuperclass";
@@ -23,12 +22,7 @@ interface Constants {
String TQROOTBEAN = "io.ebean.typequery.TQRootBean";
String TQASSOCBEAN = "io.ebean.typequery.TQAssocBean";
String TQASSOC = "io.ebean.typequery.TQAssoc";
String TYPEQUERYBEAN = "io.ebean.typequery.TypeQueryBean";
String DATABASE = "io.ebean.Database";
String DB = "io.ebean.DB";
String FETCHGROUP = "io.ebean.FetchGroup";
String QUERY = "io.ebean.Query";
String TRANSACTION = "io.ebean.Transaction";
String MODULEINFO = "io.ebean.config.ModuleInfo";
String METAINF_MANIFEST = "META-INF/ebean-generated-info.mf";
@@ -75,21 +75,12 @@ class SimpleQueryBeanWriter {
}
private void gatherPropertyDetails() {
importTypes.add(Constants.GENERATED);
importTypes.add(beanFullName);
importTypes.add(Constants.TYPEQUERYBEAN);
if (embeddable) {
importTypes.add(Constants.TQASSOC);
} else {
importTypes.add(Constants.TQASSOCBEAN);
importTypes.add(Constants.TQROOTBEAN);
importTypes.add(Constants.DATABASE);
importTypes.add(Constants.FETCHGROUP);
importTypes.add(Constants.QUERY);
importTypes.add(Constants.TRANSACTION);
importTypes.add(Constants.CONSUMER);
importTypes.add(Constants.EXPR);
importTypes.add(Constants.EXPRESSIONLIST);
}
if (implementsInterface != null) {
@@ -170,7 +161,7 @@ class SimpleQueryBeanWriter {
writer.append(" * }</pre>").eol();
writer.append(" */").eol();
writer.append(" public static Q%s forFetchGroup() {", shortName).eol();
writer.append(" return new Q%s(FetchGroup.queryFor(%s.class));", shortName, shortName).eol();
writer.append(" return new Q%s(io.ebean.FetchGroup.queryFor(%s.class));", shortName, shortName).eol();
writer.append(" }").eol();
writer.eol();
@@ -186,7 +177,7 @@ class SimpleQueryBeanWriter {
writer.eol();
writer.append(" /** Construct with a given transaction */").eol();
writer.append(" public Q%s(Transaction transaction) {", shortName).eol();
writer.append(" public Q%s(io.ebean.Transaction transaction) {", shortName).eol();
if (dbName == null) {
writer.append(" super(%s.class, transaction);", shortName).eol();
} else {
@@ -196,7 +187,7 @@ class SimpleQueryBeanWriter {
writer.eol();
writer.append(" /** Construct with a given Database */").eol();
writer.append(" public Q%s(Database database) {", shortName).eol();
writer.append(" public Q%s(io.ebean.Database database) {", shortName).eol();
writer.append(" super(%s.class, database);", shortName).eol();
writer.append(" }").eol();
writer.eol();
@@ -209,13 +200,13 @@ class SimpleQueryBeanWriter {
writer.eol();
writer.append(" /** Private constructor for FetchGroup building */").eol();
writer.append(" private Q%s(Query<%s> fetchGroupQuery) {", shortName, shortName).eol();
writer.append(" private Q%s(io.ebean.Query<%s> fetchGroupQuery) {", shortName, shortName).eol();
writer.append(" super(fetchGroupQuery);").eol();
writer.append(" }").eol();
writer.eol();
writer.append(" /** Private constructor for filterMany */").eol();
writer.append(" private Q%s(ExpressionList<%s> filter) {", shortName, shortName).eol();
writer.append(" private Q%s(io.ebean.ExpressionList<%s> filter) {", shortName, shortName).eol();
writer.append(" super(filter);").eol();
writer.append(" }").eol();
}
@@ -301,8 +292,8 @@ class SimpleQueryBeanWriter {
private void writeAssocFilterMany() {
writer.eol();
writer.append(" public final R filterMany(Consumer<Q%s> apply) {", shortName).eol();
writer.append(" final ExpressionList list = Expr.factory().expressionList();", shortName).eol();
writer.append(" public final R filterMany(java.util.function.Consumer<Q%s> apply) {", shortName).eol();
writer.append(" final io.ebean.ExpressionList list = io.ebean.Expr.factory().expressionList();", shortName).eol();
writer.append(" final var qb = new Q%s(list);", shortName).eol();
writer.append(" apply.accept(qb);").eol();
writer.append(" expr().filterMany(_name).addAll(list);").eol();