From d627bb47e228f28784902c918bef9378392ead7d Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Fri, 26 Oct 2018 01:33:24 +1300 Subject: [PATCH] #1516 - More user friendly exceptions - BeanNotEnhancedException, BeanNotRegisteredException --- .../server/deploy/parse/AnnotationAssocManys.java | 9 ++++----- .../server/deploy/parse/AnnotationAssocOnes.java | 5 +++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java b/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java index e4b6d52d0..7ed87e639 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java +++ b/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java @@ -6,6 +6,7 @@ import io.ebean.annotation.HistoryExclude; import io.ebean.annotation.PrivateOwned; import io.ebean.annotation.Where; import io.ebean.bean.BeanCollection.ModifyListenMode; +import io.ebean.config.BeanNotRegisteredException; import io.ebean.config.NamingConvention; import io.ebean.config.TableName; import io.ebean.util.CamelCaseHelper; @@ -430,7 +431,7 @@ class AnnotationAssocManys extends AnnotationParser { private String errorMsgMissingBeanTable(Class type, String from) { - return "Error with association to [" + type + "] from [" + from + "]. Is " + type + " registered?"; + return "Error with association to [" + type + "] from [" + from + "]. Is " + type + " registered? See https://ebean-orm.github.io/docs/trouble-shooting#not-registered"; } private void readToMany(ManyToMany propAnn, DeployBeanPropertyAssocMany manyProp) { @@ -451,8 +452,7 @@ class AnnotationAssocManys extends AnnotationParser { // find the other many table (not intersection) BeanTable assoc = factory.getBeanTable(targetType); if (assoc == null) { - String msg = errorMsgMissingBeanTable(targetType, manyProp.getFullBeanName()); - throw new RuntimeException(msg); + throw new BeanNotRegisteredException(errorMsgMissingBeanTable(targetType, manyProp.getFullBeanName())); } manyProp.setManyToMany(); @@ -478,8 +478,7 @@ class AnnotationAssocManys extends AnnotationParser { BeanTable assoc = factory.getBeanTable(targetType); if (assoc == null) { - String msg = errorMsgMissingBeanTable(targetType, manyProp.getFullBeanName()); - throw new RuntimeException(msg); + throw new BeanNotRegisteredException(errorMsgMissingBeanTable(targetType, manyProp.getFullBeanName())); } manyProp.setBeanTable(assoc); diff --git a/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java b/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java index add0870e8..c17b5e708 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java +++ b/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java @@ -4,6 +4,7 @@ import io.ebean.annotation.DbForeignKey; import io.ebean.annotation.FetchPreference; import io.ebean.annotation.TenantId; import io.ebean.annotation.Where; +import io.ebean.config.BeanNotRegisteredException; import io.ebean.config.NamingConvention; import io.ebeaninternal.server.deploy.BeanDescriptorManager; import io.ebeaninternal.server.deploy.BeanTable; @@ -194,13 +195,13 @@ public class AnnotationAssocOnes extends AnnotationParser { } private String errorMsgMissingBeanTable(Class type, String from) { - return "Error with association to [" + type + "] from [" + from + "]. Is " + type + " registered? Does it have the @Entity annotation?"; + return "Error with association to [" + type + "] from [" + from + "]. Is " + type + " registered? Does it have the @Entity annotation? See https://ebean-orm.github.io/docs/trouble-shooting#not-registered"; } private BeanTable beanTable(DeployBeanPropertyAssoc prop) { BeanTable assoc = factory.getBeanTable(prop.getPropertyType()); if (assoc == null) { - throw new RuntimeException(errorMsgMissingBeanTable(prop.getPropertyType(), prop.getFullBeanName())); + throw new BeanNotRegisteredException(errorMsgMissingBeanTable(prop.getPropertyType(), prop.getFullBeanName())); } return assoc; }