0

したがって、列にマップされた 2 つのフィールドを含む埋め込み型があります。そのタイプでは、両方の列が に設定されていnullable = falseます。

その埋め込み可能な型を使用する別のオブジェクトで、列名をオーバーライドし、列の 1 つを に設定したいと考えていますnullable = true

@AttributeOverrides({ @AttributeOverride(name="col1", column=@Column(name="COL_1", nullable=true)), @AttributeOverride(name="col2", column=@Column(name="COL_2", nullable=false)) })

いいですね。

コードを実行すると、col1 が null である行を取得しようとすると、次のようになります。

org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter col1

何か案は?

前もって感謝します。

4

1 に答える 1

3

列は null 可能ですが、エンティティのフィールドはプリミティブ型 (おそらく int、long、または boolean) です。Hibernate が null をプリミティブ型フィールドに格納する方法はありません。代わりに、Integer または Long または Boolean である必要があります。

エラーメッセージは次のとおりです。「プリミティブ型のプロパティに Null 値が割り当てられました」。

于 2013-07-18T13:33:24.510 に答える