![](/img/trans.png)
[英]Hibernate Criteria - org.hibernate.PropertyAccessException: IllegalArgumentException
[英]Hibernate : org.hibernate.PropertyAccessException: IllegalArgumentException
我有一个与ManyToMany关系映射的父表(MHS_USER)和关联的子表(GROUP),如下所示(下面的相关代码)
@Entity
@Table(name = "mhs_user")
public class MHSUser extends implements Comparable<User> {
@ManyToMany(fetch = FetchType.EAGER, cascade = { CascadeType.ALL })
@JoinTable(name = "user_group_rel", joinColumns = @JoinColumn(name = "mhs_user_id"), inverseJoinColumns = @JoinColumn(name = "group_id"))
public List<Group> getGroups() {
return groups;
}
public void setGroups(List<Group> groups) {
this.groups = groups;
}
}
在上面的代码中,mhs_user_id是MHS_USER表中的标识列,而grp_id是GROUP表中的标识键。 USER_GROUP_REL表是保存两者之间关系的联接表。 当我保留一个新的User实例时,它可以按预期工作(通过在父表和子表中插入一条记录)。 但是,当我尝试将任何值更新为User实例时,都会引发PropertyAccessException。 以下是选择性堆栈跟踪
------------------------------------------------------------------------------------------ [1/14/11 13:59:10:154 CST] 0000004b SystemErr R Caused by: org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of edu.mayo.hcdm.mhsr.businessobject.Group.id at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:171) at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:183) ……………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………………………….. [1/14/11 13:59:10:154 CST] 0000004b SystemErr R ... 90 more [1/14/11 13:59:10:154 CST] 0000004b SystemErr R Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79) ------------------------------------------------------------------------------------------
当仅在更新时从GROUP表中搜索group_id时,Hibernate会抛出一个错误,即“对象不是声明类的实例”,这令人感到困惑。 我在线上找到了很多线程,它们是一个休眠错误(我使用的是Hibernate 3.3.1)。 有人遇到过同样的问题吗?如果是,您最终是如何解决它的? 高度赞赏任何输入。
确保groups
列表中不包含Group
以外的对象-这似乎是最明显的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.