2012-05-10 11 views
0

jpaという名前のクエリに外部プロパティを追加する方法を知っている人はいますか?名前付きクエリに外部プロパティを設定する

ですから、例えば:とは対照的に、

@NamedQuery(name = "Test", query = "select t from ${table.name} t") 

@NamedQuery(name = "Test", query = "select t from TableName t") 

おかげで

答えて

1

注釈は、それゆえ、彼らは実行時に変更することはできませんので、あなたはそれを行うことはできません最終的なものです。

+0

なぜ@Table(name = "$ {table.name}")が機能するのですか? – netta

0

名前付きクエリではなく実行時にネイティブクエリを定義し、SQL文字列を自分で変換することができます。

その他の解決方法は、コードにプリコンパイラのようなものを使用するか、何らかのパーシスタンスユニットイベントを使用してクエリを処理することです。 EclipseLinkを使用している場合は、SessionCustomizerを使用するか、SessionEventListenerを使用して、実行前にSQL問合せを事前処理できます。

関連する問題