/** * カラムを処理します。 * * @param entityMeta エンティティメタデータ * @param propertyMeta プロパティメタデータ * @param foreignKeyDesc 外部キー記述 */ protected void doColumn( EntityMeta entityMeta, PropertyMeta propertyMeta, ForeignKeyDesc foreignKeyDesc) { for (JoinColumnMeta jcm : propertyMeta.getJoinColumnMetaList()) { foreignKeyDesc.addColumnName(jcm.getName()); foreignKeyDesc.addReferencedColumnName(jcm.getReferencedColumnName()); } }
/** * 参照動作を処理します。 * * @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()); } }
/** * テーブルを処理します。 * * @param entityMeta エンティティメタデータ * @param propertyMeta プロパティメタデータ * @param foreignKeyDesc 外部キー記述 */ protected void doTable( EntityMeta entityMeta, PropertyMeta propertyMeta, ForeignKeyDesc foreignKeyDesc) { EntityMeta inverseEntityMeta = entityMetaFactory.getEntityMeta(propertyMeta.getRelationshipClass()); TableMeta tableMeta = inverseEntityMeta.getTableMeta(); foreignKeyDesc.setReferencedCatalogName(tableMeta.getCatalog()); foreignKeyDesc.setReferencedSchemaName(tableMeta.getSchema()); foreignKeyDesc.setReferencedTableName(tableMeta.getName()); foreignKeyDesc.setReferencedFullTableName(tableMeta.getFullName()); }