8

休止状態によって管理されるエンティティに長いフィールドを持つことは、null 値で危険な場合があります。Hibernate が null をプリミティブに設定しようとすると、例外がスローされます。

最善の解決策は、long の代わりに Long を使用することです。そのため、Long フィールドに null を割り当てることができます。

しかし、私は Long 型または Integer 型を使用できないプロジェクトに取り組んでいます。休止状態の型をオーバーライドして nullSafe メソッドなどを使用する方法があるかどうか疑問に思っています。

4

2 に答える 2

2

最後にUserType、ここで説明されているように休止状態を実装しました: http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch06.html#types-custom

于 2015-02-17T14:21:21.583 に答える
-1

私は常にカプセル化されたクラス型を使用しますが、それができない場合は、次のように永続化する前にエンティティ属性を確認できます。

if (entity.getAttribute == null){
entity.setAttribute(0); //case of long, int...
}
于 2015-02-06T12:54:32.603 に答える