10

フィールドを更新不可として定義した場合、それはフィールドをまったく更新できないことを意味しますか?私がやりたいのは、エンティティオブジェクト全体を保存するときにフィールドが更新されないようにすることですが、それでもこのフィールドを明示的に更新するクエリを作成することはできます。これは可能ですか?

私はHibernateとMySQLを使用していますが、移植可能なコードを記述したいと思います。

4

2 に答える 2

12

文書化されているように、設定は永続性プロバイダーによって生成さupdatable=falseれたSQLUPDATEステートメントにのみ影響します。

列が永続性プロバイダーによって生成されたSQLUPDATEステートメントに含まれているかどうか。

この列の値を更新するようなSQL更新ステートメントを引き続き作成できます。この機能はJPA仕様で定義されており、Hibernate/MySQL固有ではありません。

于 2012-08-16T18:33:43.203 に答える
4
@javax.persistence.Column( updatable=false )

マップされた列は、HQLまたは休止状態のメソッドを使用して更新できません。DBの値を更新する必要がある場合は、ネイティブSQLを作成する必要があります。

そして、私が論理的に見ると、あなたが言うときにあなたが更新することを許可するべきではありませんupdatable=false

于 2012-08-16T18:34:06.523 に答える