diff --git a/wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/EntityReferences.java b/wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/EntityReferences.java index aece083..aaa57aa 100644 --- a/wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/EntityReferences.java +++ b/wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/EntityReferences.java @@ -34,6 +34,9 @@ public class EntityReferences { public static final Predicate FIELD_HAS_FK = f -> f.getAnnotation(ECForeignKey.class) != null; + public static final Predicate FIELD_HAS_CASCADING_FK + = f -> f.getAnnotation(ECForeignKey.class) != null && f.getAnnotation(ECForeignKey.class).cascade(); + public static final Predicate FIELD_HAS_INDEX = f -> f.getAnnotation(ECIndex.class) != null; @@ -69,7 +72,7 @@ public class EntityReferences { final List> refs = new ArrayList<>(); while (!clazz.getName().equals(Object.class.getName())) { refs.addAll(Arrays.stream(clazz.getDeclaredFields()) - .filter(EntityReferences.FIELD_HAS_FK) + .filter(EntityReferences.FIELD_HAS_CASCADING_FK) .map(EntityReferences.FIELD_TO_FK_CLASS) .collect(Collectors.toList())); clazz = clazz.getSuperclass(); diff --git a/wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/annotations/ECForeignKey.java b/wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/annotations/ECForeignKey.java index 1a99c40..3ca5989 100644 --- a/wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/annotations/ECForeignKey.java +++ b/wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/annotations/ECForeignKey.java @@ -13,5 +13,6 @@ public @interface ECForeignKey { Class entity(); String field() default "uuid"; boolean index() default true; + boolean cascade() default true; }