/** * 参照動作を処理します。 * * @param entityMeta エンティティメタデータ * @param propertyMeta プロパティメタデータ * @param foreignKeyDesc 外部キー記述 */ protected void doReferetialAction( EntityMeta entityMeta, PropertyMeta propertyMeta, ForeignKeyDesc foreignKeyDesc) { ReferentialConstraint referentialConstraint = getReferentialConstraint(propertyMeta); if (dialect.supportsReferentialDeleteRule()) { foreignKeyDesc.setOnDelete(referentialConstraint.onDelete()); } if (dialect.supportsReferentialUpdateRule()) { foreignKeyDesc.setOnUpdate(referentialConstraint.onUpdate()); } }
public ForeignKeyDesc getForeignKeyDesc(EntityMeta entityMeta, PropertyMeta propertyMeta) { if (!propertyMeta.isRelationship() || propertyMeta.getMappedBy() != null) { return null; } ReferentialConstraint referentialConstraint = propertyMeta.getField().getAnnotation(ReferentialConstraint.class); if (referentialConstraint == null) { if (!regardRelationshipAsFk) { return null; } } else { if (!referentialConstraint.enable()) { return null; } } ForeignKeyDesc foreignKeyDesc = new ForeignKeyDesc(); doColumn(entityMeta, propertyMeta, foreignKeyDesc); doTable(entityMeta, propertyMeta, foreignKeyDesc); doReferetialAction(entityMeta, propertyMeta, foreignKeyDesc); return foreignKeyDesc; }