无法将布尔值设置为 null
我有一个具有以下变量的类商店
@Column(columnDefinition = "bit")
private boolean atShop;
使用此值,我正在使用 HSQL 从应用程序中检索此信息
from Person person
left join fetch person.shop
当我尝试调用此HSQL语句时,我得到以下错误
org.springframework.orm.hibernate3.HibernateSystemException: could not set a field value by reflection setter of com.test.dataobject.Shop.atShop; nested exception is org.hibernate.PropertyAccessException: could not set a field value by reflection setter of com.test.dataobject.Shop.atShop
它之所以抛出这个,是因为它试图在 HSQL 中将布尔值设置为 null。我可以通过更改为来解决此问题,但我想将其保留为a,因为我将其保存为数据库中的位private boolean atShop;
private Boolean atShop;
boolean
有没有办法在不改变的情况下解决这个问题?boolean
Boolean
编辑:
我知道布尔值只能是真/假,布尔值可以设置为null,但是有没有办法让休眠/spring将此值设置为false(我认为它应该自动执行此操作),而不是尝试将其设置为null并引发此异常?
我还尝试添加注释以自动将值设置为false,但这也不起作用
@Column(nullable = false, columnDefinition = "bit default 0")
private boolean atShop;