繁体   English   中英

休眠: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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM