You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/01/15 14:52:58 UTC
[isis] branch master updated: ISIS-2480: jpa-metamodel: support
'mandatory' from @JoinColumn
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 59829b8 ISIS-2480: jpa-metamodel: support 'mandatory' from @JoinColumn
59829b8 is described below
commit 59829b878c8fa7fb23801444211e55a791b21ff7
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jan 15 15:52:24 2021 +0100
ISIS-2480: jpa-metamodel: support 'mandatory' from @JoinColumn
---
.../MandatoryFromJpaColumnAnnotationFacetFactory.java | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/facets/prop/column/MandatoryFromJpaColumnAnnotationFacetFactory.java b/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/facets/prop/column/MandatoryFromJpaColumnAnnotationFacetFactory.java
index 01afd37..5098be7 100644
--- a/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/facets/prop/column/MandatoryFromJpaColumnAnnotationFacetFactory.java
+++ b/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/facets/prop/column/MandatoryFromJpaColumnAnnotationFacetFactory.java
@@ -18,7 +18,10 @@
*/
package org.apache.isis.persistence.jpa.metamodel.facets.prop.column;
+import java.util.Optional;
+
import javax.persistence.Column;
+import javax.persistence.JoinColumn;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -38,17 +41,23 @@ extends FacetFactoryAbstract {
//val cls = processMethodContext.getCls();
- final Column annotation = processMethodContext.synthesizeOnMethod(Column.class)
- .orElse(null);
-
- if (annotation == null) {
+ final Optional<Boolean> nullable1 = processMethodContext.synthesizeOnMethod(JoinColumn.class)
+ .map(JoinColumn::nullable);
+
+ final Optional<Boolean> nullable2 = processMethodContext.synthesizeOnMethod(Column.class)
+ .map(Column::nullable);
+
+ if(!nullable1.isPresent()
+ && !nullable2.isPresent()) {
return;
}
+ val nullable = nullable1.orElseGet(nullable2::get);
+
val facetHolder = processMethodContext.getFacetHolder();
FacetUtil.addFacet(new MandatoryFacetDerivedFromJpaColumn(
facetHolder,
- !annotation.nullable()));
+ !nullable));
}