0

JPQL でエンティティを別のエンティティとの 1 対多の関係に置き換えようとしましたが、JPQL を正しく表現する方法がわかりません。

update PersonInstitution pi set pi.designation = (select d from Designation d where d.id = 50) where pi.designation.id = 34]

すべての PersonInstitution エンティティの 1 つの指定 (ID 34 を持つ) を別の指定 (ID 50 を持つ) に置き換えたいと思いました。しかし、それはエラーを出します。

すべてのオブジェクトをロードして編集し、元に戻すことはできましたが、効率の悪い方法だと思いました。

私はEclipseLink 2.0でJPAを使用しています

4

1 に答える 1

0

仕様上、JPQLでは動作しない場合があります。

update_clause ::= UPDATE entity_name [[AS] identification_variable] SET update_item {, update_item}* 

update_item ::= [identification_variable.]{state_field | single_valued_object_field} = new_value 

手動で行う必要があります。それ以外の場合は、代わりにネイティブ クエリを使用してみてください。

于 2013-02-13T08:31:41.597 に答える