#1228 - Add support to not generate FK Constraint when @JoinColumn(foreignKey=@ForeignKey(ConstraintMode.NO_CONSTRAINT))

This commit is contained in:
Rob Bygrave
2018-02-19 22:45:47 +13:00
parent 183d079b58
commit 2be3099d55
4 changed files with 91 additions and 0 deletions
@@ -16,8 +16,10 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.persistence.Column;
import javax.persistence.ConstraintMode;
import javax.persistence.Embedded;
import javax.persistence.EmbeddedId;
import javax.persistence.ForeignKey;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
@@ -131,6 +133,7 @@ public class AnnotationAssocOnes extends AnnotationParser {
if (!joinColumn.nullable()) {
prop.setNullable(false);
}
checkForNoConstraint(prop, joinColumn);
}
@@ -171,6 +174,13 @@ public class AnnotationAssocOnes extends AnnotationParser {
}
}
private void checkForNoConstraint(DeployBeanPropertyAssocOne<?> prop, JoinColumn joinColumn) {
ForeignKey foreignKey = joinColumn.foreignKey();
if (foreignKey != null && foreignKey.value() == ConstraintMode.NO_CONSTRAINT) {
prop.setForeignKey(new PropertyForeignKey());
}
}
private String errorMsgMissingBeanTable(Class<?> type, String from) {
return "Error with association to [" + type + "] from [" + from + "]. Is " + type + " registered?";
}