From 395edb62bfea40312e37a2cfde2a20cfd4c85310 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 9 Oct 2023 21:10:56 +1300 Subject: [PATCH] In version 13.22 if the entity definition is in a different package, the generated query bean cannot resolve the symbol erro --- .../java/org/example/domain/OtherMain.java | 18 ++++++++++++++++++ .../org/example/domain/other/OtherBean.java | 13 +++++++++++++ .../querybean/generator/ProcessingContext.java | 3 ++- .../querybean/generator/PropertyTypeAssoc.java | 8 ++++++-- 4 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 ebean-querybean/src/test/java/org/example/domain/OtherMain.java create mode 100644 ebean-querybean/src/test/java/org/example/domain/other/OtherBean.java diff --git a/ebean-querybean/src/test/java/org/example/domain/OtherMain.java b/ebean-querybean/src/test/java/org/example/domain/OtherMain.java new file mode 100644 index 000000000..e1760e4d6 --- /dev/null +++ b/ebean-querybean/src/test/java/org/example/domain/OtherMain.java @@ -0,0 +1,18 @@ +package org.example.domain; + +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.ManyToOne; +import org.example.domain.other.OtherBean; + +@SuppressWarnings("unused") +@Entity +public class OtherMain { + + @Id + long id; + + @ManyToOne + OtherBean other; + +} diff --git a/ebean-querybean/src/test/java/org/example/domain/other/OtherBean.java b/ebean-querybean/src/test/java/org/example/domain/other/OtherBean.java new file mode 100644 index 000000000..9e8ddbefe --- /dev/null +++ b/ebean-querybean/src/test/java/org/example/domain/other/OtherBean.java @@ -0,0 +1,13 @@ +package org.example.domain.other; + +import jakarta.persistence.Entity; +import jakarta.persistence.Id; + +@SuppressWarnings("unused") +@Entity +public class OtherBean { + + @Id + long id; + String name; +} diff --git a/querybean-generator/src/main/java/io/ebean/querybean/generator/ProcessingContext.java b/querybean-generator/src/main/java/io/ebean/querybean/generator/ProcessingContext.java index e1bedcd1d..28a9b537e 100644 --- a/querybean-generator/src/main/java/io/ebean/querybean/generator/ProcessingContext.java +++ b/querybean-generator/src/main/java/io/ebean/querybean/generator/ProcessingContext.java @@ -362,7 +362,8 @@ class ProcessingContext implements Constants { private PropertyType createPropertyTypeAssoc(String fullName) { String[] split = Split.split(fullName); String propertyName = "Q" + split[1] + ".Assoc"; - return new PropertyTypeAssoc(propertyName); + String importName = split[0] + ".query.Q" + split[1]; + return new PropertyTypeAssoc(propertyName, importName); } /** diff --git a/querybean-generator/src/main/java/io/ebean/querybean/generator/PropertyTypeAssoc.java b/querybean-generator/src/main/java/io/ebean/querybean/generator/PropertyTypeAssoc.java index 6e6847c86..321ba40e4 100644 --- a/querybean-generator/src/main/java/io/ebean/querybean/generator/PropertyTypeAssoc.java +++ b/querybean-generator/src/main/java/io/ebean/querybean/generator/PropertyTypeAssoc.java @@ -7,13 +7,17 @@ import java.util.Set; */ class PropertyTypeAssoc extends PropertyType { + private final String importName; + /** * Construct given the associated bean type name and package. * * @param qAssocTypeName the associated bean type name. + * @param importName the import for the Assoc bean. */ - PropertyTypeAssoc(String qAssocTypeName) { + PropertyTypeAssoc(String qAssocTypeName, String importName) { super(qAssocTypeName); + this.importName = importName; } /** @@ -21,7 +25,7 @@ class PropertyTypeAssoc extends PropertyType { */ @Override void addImports(Set allImports) { - // do nothing + allImports.add(importName); } }