我有一個類店鋪有以下變量不能設定布爾爲空
@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中的布爾值爲空。我可以通過改變private boolean atShop;
到private Boolean atShop;
解決這個問題,但我想保持這種作爲boolean
,因爲我將其保存爲我的數據庫
有點是否有解決這個不改變boolean
到Boolean
的方法嗎?
編輯:
我知道布爾值只能是真/假和布爾可以設置爲空,但有沒有辦法讓休眠/春將該值設置爲false(我認爲它應該自動)而不是試圖將其設置爲null並拋出此異常?
我也嘗試添加註釋的值會自動設置爲false但是,這並不工作,要麼
@Column(nullable = false, columnDefinition = "bit default 0")
private boolean atShop;
是的,我知道,我的應用程序拋出這一例外,因爲春/ Hibernate是試圖建立atShop爲null,而不是虛假的布爾和布爾之間的差異,但我怎樣才能得到它設置爲false和not null? –
嘖嘖,我討厭人們在沒有任何解釋的情況下回答問題的答案,只因爲他們不是他們正在尋找的東西。最重要的是,像這樣的問題本來不夠清楚。這讓我失去了嘗試幫助的意願。 –
@Edwin Dalorzo:但是這不是我是誰投下來的答案,這就是爲什麼我添加了編輯部分我的問題,因爲這是我的錯,我沒有解釋,我已經明白布爾和布爾 –