各オブジェクト間のマッピングを持つ一連のエンティティ クラスがあるとします。
@Entity
@Table(name = "legacy")
public class Legacy {
// Mappings to a bunch of other different Entities
}
@Entity
@Table(name = "new_entity")
public class NewEntity {
private Legacy legacy;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "legacy_id", referencedColumnName = "id")
public Legacy getLegacy() {
return legacy;
}
public Legacy setLegacy(Legacy legacy) {
this.legacy = legacy;
}
// Mappings to other new stuff
}
クラスを hibernate で使用してConfiguration
、いくつかの注釈付きクラスの作成スクリプトを生成できます。
Configuration config = new Configuration();
Properties properties = new Properties();
properties.put("hibernate.dialect", "org.hibernate.dialect.SQLServer2005Dialect");
config.setProperties(properties);
config.addAnnotatedClass(NewEntity.class)
String[] schema =
config.generateSchemaCreationScript(new SQLServer2005Dialect());
for (String table : schema) {
System.out.println(table);
}
ただし、クラスLegacy
が構成に追加されていないため、これは失敗します。ただし、それを行う場合は、他のレガシー クラスを追加する必要があります (これらのクラスにはすべて、既に「機能する」マッピングとテーブルがあります。
NewEntity
のすべてのマッピングを追加せずに、 のスクリプトのみを生成する方法はありLegacy
ますか? 現在、レガシー マッピングにコメントを付けて NewEntity のスクリプトを生成し、手動で追加し直しています。