所以我有一个包含两个映射到列的字段的嵌入类型。在该类型中,两列都设置为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
有什么想法吗?
提前致谢。
答案 0 :(得分:3)
该列可以为空,但实体中的字段是基本类型(推测为int,long或boolean)。 Hibernate无法将null存储到基本类型字段中。它应该是Integer或Long或Boolean。
这就是错误消息所说的:“将空值分配给基本类型的属性”。