2

テーブル名を表す文字列プロパティに従って、さまざまなテーブルに動的に永続化する必要があるエンティティがあります。Hibernate の動的モデルはまさに私が望むものに見えますが、テーブル名を設定する方法が見つかりません :) 何が欠けているか教えてもらえますか? 前もって感謝します。

PS別の解決策はhttp://java.dzone.com/articles/hibernate-dynamic-table-routinです。しかし、汚いハックのように見えるので嫌いです。置換したい部分文字列として名前が付けられた複数のクエリ部分がある場合はどうなりますか。

4

3 に答える 3

1

使用している場合は、JPA thenできます@PrePersist

プレーンで作業している場合は、 eventHibernateを見てください。

それがあなたのために働くかどうかわからない。

NamingStrategyチュートリアルが必要なようです。

@Override
public String classToTableName(String className) {
    // your code super.classToTableName()
}


org.hibernate.cfg.NamingStrategy interface.

Hibernate 3.6 には、このインターフェースの 4 つの実装があります。

org.hibernate.cfg.DefaultComponentSafeNamingStrategy
org.hibernate.cfg.DefaultNamingStrategy
org.hibernate.cfg.EJB3NamingStrategy
org.hibernate.cfg.ImprovedNamingStrategy

テーブル名を返すコードを実装します。

于 2012-06-07T08:43:05.390 に答える