From 0e7dc4209c544f5be75f7ae7b66c88a46cb13fdd Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 20 Sep 2018 21:09:01 +1200 Subject: [PATCH] #1482 - Improve error message for incorrect mapping - @JoinColumn without @ManyToOne etc --- .../server/deploy/parse/AnnotationAssocOnes.java | 6 ++++++ 1 file changed, 6 insertions(+) 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 0c3606bd3..bb0bac37d 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java +++ b/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java @@ -132,6 +132,9 @@ public class AnnotationAssocOnes extends AnnotationParser { // check for manually defined joins BeanTable beanTable = prop.getBeanTable(); for (JoinColumn joinColumn : getAll(prop, JoinColumn.class)) { + if (beanTable == null) { + throw new IllegalStateException("Looks like a missing @ManyToOne or @OneToOne on property " + prop.getFullBeanName()+" - no related 'BeanTable'"); + } prop.getTableJoin().addJoinColumn(false, joinColumn, beanTable); if (!joinColumn.updatable()) { prop.setDbUpdateable(false); @@ -146,6 +149,9 @@ public class AnnotationAssocOnes extends AnnotationParser { JoinTable joinTable = get(prop, JoinTable.class); if (joinTable != null) { for (JoinColumn joinColumn : joinTable.joinColumns()) { + if (beanTable == null) { + throw new IllegalStateException("Looks like a missing @ManyToOne or @OneToOne on property " + prop.getFullBeanName()+" - no related 'BeanTable'"); + } prop.getTableJoin().addJoinColumn(false, joinColumn, beanTable); if (!joinColumn.updatable()) { prop.setDbUpdateable(false);