我正在使用休眠注释。如何向 POJO 对象添加方法?例如,我有与数据库关联的“getChildNodes”方法,但我还想添加递归方法“getAllChildNodes”。当我这样做时,我得到“org.hibernate.PropertyNotFoundException:找不到类中属性进度的设置器”异常。
问问题
3413 次
3 回答
9
如果我将此解释为“如何添加与持久性无关的方法”,那么您需要在方法上使用@Transient
注释getAllChildNodes()
于 2010-06-11T13:14:39.897 回答
1
定义实体结构的方法有两种。
- 在实体的实例变量上使用注释或
- 在实体的 getter 方法上使用注释
当在 getter 方法上使用注解时,Hibernate 假定每个 getXxx(以及布尔类型的 isXxx)都代表一个持久属性的定义。即使特定的 getter 不包含任何注释,这也成立,就像您的情况一样。
Hibernate 还期望为每个持久属性找到匹配的 setter 方法。在您的情况下,这就是缺少的并导致异常。
您可以通过声明您的自定义 getter 来解决此问题,因为@Transient
这表示此 getter 不代表持久属性。另一种方法是将实体转换为在实例变量上使用注释。后者将是我个人的选择。
于 2010-06-13T08:34:28.293 回答
-1
打开 .java 文件并编写一个名为getAllChildNodes()
.
Hibernate 不会为您编写代码,它会将数据库中的字段映射到您的代码。就这样。如果除了属性的普通 getter 和 setter 之外,您还想在域/模型类中添加额外的逻辑,则必须自己添加它们。
于 2010-06-11T13:11:34.673 回答