【发布时间】:2013-03-21 19:06:34
【问题描述】:
我正在尝试使用注释向其中一个表中添加一个新的 bool 列,我已经尝试过
@Column(name = "selected", nullable = true)
private boolean selected;
然后我添加了 getter/setter,但是当我运行应用程序时出现此错误:
Exception occurred inside setter of com.ingens.warranty.model.WarrantyCase.warrantyDetail; nested exception is org.hibernate.PropertyAccessException: Exception occurred inside setter of com.ingens.warranty.model.WarrantyCase.warrantyDetail
我对 Hibernate 很陌生,虽然我的问题可能是一个新手问题,但它让我很安静
谢谢
编辑:
好的,我在错误堆栈中发现了这个错误,Unknown column 'warrantyse14_.selected' in 'field list',显然没有创建该列,并且 sql select 命令正在使用该列,该列不存在,所以我假设注释不起作用出于某种原因,它只是在我运行应用程序后不创建列。
【问题讨论】:
-
可能这个“一个可以为空的数据库列被映射到一个原始类型的属性”。在这里查看dil.univ-mrs.fr/~massat/docs/hibernate-3.1/api/org/hibernate/…
-
感谢您指出这一点,我不敢相信我真的错过了,所以我将其更改为
@Column(name = "selected", nullable = false, columnDefinition="boolean defaule false"),但错误仍然存在。何时更改表以添加新列?也许我的注释是错误的?但无论如何感谢您的快速回复。 -
问题出在其他字段(WarrantyCase 中的warrantyDetail)getter 和setter 上
-
感谢 rajesh,但这是我检查的第一个地方,它基本上是在读取我尝试调试的保修案例的对象属性,但它甚至在读取属性之前就深入到了框架中这让我有点无法追踪,因为我对休眠真的很陌生。我会尝试评论该吸气剂中的所有内容,看看我是否能找出到底发生了什么......无论如何,谢谢