From 0dc2550bdb0d61943c3f404827e4c661d8cc6566 Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Fri, 12 Nov 2021 10:40:15 +0100 Subject: [PATCH] Assume InfoInherit infoType when it has no children --- .../server/deploy/AssocOneHelpRefInherit.java | 14 ++++++++++---- .../org/tests/inheritance/bothsides/Target1.java | 1 - 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java index 3a471f666..6ca843258 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java @@ -31,10 +31,17 @@ final class AssocOneHelpRefInherit extends AssocOneHelp { Object read(DbReadContext ctx) throws SQLException { // read discriminator to determine the type InheritInfo rowInheritInfo = inherit.readType(ctx); + BeanDescriptor desc; if (rowInheritInfo == null) { - // ignore the id property - property.targetIdBinder.loadIgnore(ctx); - return null; + if(!inherit.hasChildren()) { + desc = inherit.desc(); + } else { + // ignore the id property + property.targetIdBinder.loadIgnore(ctx); + return null; + } + } else { + desc = rowInheritInfo.desc(); } Object id = property.targetIdBinder.read(ctx); if (id == null) { @@ -42,7 +49,6 @@ final class AssocOneHelpRefInherit extends AssocOneHelp { } // check transaction context to see if it already exists PersistenceContext pc = ctx.getPersistenceContext(); - BeanDescriptor desc = rowInheritInfo.desc(); Object existing = desc.contextGet(pc, id); if (existing != null) { return existing; diff --git a/ebean-test/src/test/java/org/tests/inheritance/bothsides/Target1.java b/ebean-test/src/test/java/org/tests/inheritance/bothsides/Target1.java index 5803d8046..f39c3ee61 100644 --- a/ebean-test/src/test/java/org/tests/inheritance/bothsides/Target1.java +++ b/ebean-test/src/test/java/org/tests/inheritance/bothsides/Target1.java @@ -4,7 +4,6 @@ import javax.persistence.Entity; import javax.persistence.Inheritance; @Entity -@Inheritance public class Target1 extends TargetBase { public Target1(String name) {