/** * カラムを処理します。 * * @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()); } }
/** * JoinColumnを処理します。 * * @param propertyMeta プロパティメタデータ * @param field フィールド * @param entityMeta エンティティメタデータ */ protected void doJoinColumn(PropertyMeta propertyMeta, Field field, EntityMeta entityMeta) { JoinColumn joinColumn = field.getAnnotation(JoinColumn.class); if (joinColumn != null) { JoinColumnMeta meta = new JoinColumnMeta(joinColumn.name(), joinColumn.referencedColumnName()); propertyMeta.addJoinColumnMeta(meta); } else { JoinColumns joinColumns = field.getAnnotation(JoinColumns.class); if (joinColumns != null) { JoinColumn[] array = joinColumns.value(); for (int i = 0; i < array.length; i++) { JoinColumn jc = array[i]; JoinColumnMeta meta = new JoinColumnMeta(jc.name(), jc.referencedColumnName()); if (i > 0 && (meta.getName() == null || meta.getReferencedColumnName() == null)) { throw new JoinColumnNameAndReferencedColumnNameMandatoryRuntimeException( entityMeta.getName(), propertyMeta.getName(), i + 1); } propertyMeta.addJoinColumnMeta(meta); } } } }