From 2d44d06f36c97a80e9556bafc45662fecd18cff2 Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Wed, 18 Jul 2018 19:36:41 +1200 Subject: [PATCH] #1456 - io.ebean.annotation.NotNull not honored by @ManyToOne property --- .../dbmigration/ddlgeneration/platform/PlatformDdl.java | 3 +++ .../server/deploy/parse/AnnotationAssocOnes.java | 4 ++++ src/test/java/misc/migration/v1_1/EBasic.java | 1 - src/test/java/org/tests/merge/MContactMessage.java | 5 ++++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java index 8edd3b990..b2320c7b9 100644 --- a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java +++ b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java @@ -246,6 +246,9 @@ public class PlatformDdl { * Convert the standard type to the platform specific type. */ public String convert(String type, boolean identity) { + if (type == null) { + return null; + } if (type.contains("[]")) { return convertArrayType(type); } 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 5f792e670..0c3606bd3 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java +++ b/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java @@ -116,6 +116,10 @@ public class AnnotationAssocOnes extends AnnotationParser { prop.setFetchPreference(fetchPreference.value()); } + io.ebean.annotation.NotNull nonNull = get(prop, io.ebean.annotation.NotNull.class); + if (nonNull != null) { + prop.setNullable(false); + } if (validationAnnotations) { NotNull notNull = get(prop, NotNull.class); if (notNull != null && isEbeanValidationGroups(notNull.groups())) { diff --git a/src/test/java/misc/migration/v1_1/EBasic.java b/src/test/java/misc/migration/v1_1/EBasic.java index 9fa379bdd..b2597d3f0 100644 --- a/src/test/java/misc/migration/v1_1/EBasic.java +++ b/src/test/java/misc/migration/v1_1/EBasic.java @@ -108,7 +108,6 @@ public class EBasic { @DbDefault("42") int newInteger; - @NotNull @ManyToOne @DbMigration(preAlter= "insert into migtest_e_user (id) select distinct user_id from migtest_e_basic") // ensure all users exist EUser user; diff --git a/src/test/java/org/tests/merge/MContactMessage.java b/src/test/java/org/tests/merge/MContactMessage.java index 95d22026f..a5f71b452 100644 --- a/src/test/java/org/tests/merge/MContactMessage.java +++ b/src/test/java/org/tests/merge/MContactMessage.java @@ -1,5 +1,7 @@ package org.tests.merge; +import io.ebean.annotation.NotNull; + import javax.persistence.Entity; import javax.persistence.ManyToOne; @@ -12,7 +14,8 @@ public class MContactMessage extends MBase { private String notes; - @ManyToOne(optional = false) + @NotNull + @ManyToOne private MContact contact; public MContactMessage(String title, String subject) {