@AttribueOverride(name =“col1”,column = @ Column(nullable = true))throw无法将field设置为null值

时间:2013-07-18 13:30:08

标签: java hibernate jpa

所以我有一个包含两个映射到列的字段的嵌入类型。在该类型中,两列都设置为nullable = false

在另一个使用该嵌入类型的对象中,我想覆盖列名并将其中一列设置为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

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:3)

该列可以为空,但实体中的字段是基本类型(推测为int,long或boolean)。 Hibernate无法将null存储到基本类型字段中。它应该是Integer或Long或Boolean。

这就是错误消息所说的:“将空值分配给基本类型的属性”。