From 78965c1ac4476ea3f6fc03b945f9b8582cbc52f6 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 22 Mar 2021 23:43:35 +1300 Subject: [PATCH] #2203 - Support use of Java Record type with @Entity, @Embeddable @IdClass Allow java.lang.Record to be a root level parent for entity beans etc --- .../ebeaninternal/server/deploy/BeanDescriptorManager.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java index 0cb5deeaa..dca6b2b09 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java @@ -93,6 +93,7 @@ public class BeanDescriptorManager implements BeanDescriptorMap { private static final Logger logger = LoggerFactory.getLogger(BeanDescriptorManager.class); private static final BeanDescComparator beanDescComparator = new BeanDescComparator(); + public static final String JAVA_LANG_RECORD = "java.lang.Record"; private final ReadAnnotations readAnnotations; private final TransientProperties transientProperties; @@ -1418,14 +1419,10 @@ public class BeanDescriptorManager implements BeanDescriptorMap { */ private void checkInheritedClasses(Class beanClass) { Class superclass = beanClass.getSuperclass(); - if (Object.class.equals(superclass)) { + if (Object.class.equals(superclass) || Model.class.equals(superclass) || JAVA_LANG_RECORD.equals(superclass.getName())) { // we got to the top of the inheritance return; } - if (Model.class.equals(superclass)) { - // top of the inheritance. Not enhancing Model at this stage - return; - } if (!EntityBean.class.isAssignableFrom(superclass)) { if (isMappedSuperWithNoProperties(superclass)) { // ok to stop and treat just the same as Object.class