Iは、親テーブル(MHS_USER)と関連した子テーブル(GROUP)は、以下のように多対多の関係でマッピング(以下関連するコード)上記休止:org.hibernate.PropertyAccessException:はIllegalArgumentException
@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テーブルのID列で、grp_idはGROUPテーブルのIDキーです。 USER_GROUP_RELテーブルは、2つの間の関係を保持する結合テーブルです。新しいUserインスタンスを永続化すると、(親テーブルと子テーブルにレコードを挿入することによって)期待どおりに動作します。しかし、Userインスタンスに値を更新しようとすると、PropertyAccessExceptionがスローされます。以下は、Hibernateが更新のみでGROUPテーブルからGROUP_IDを検索するときに、「オブジェクトが宣言クラスのインスタンスではありません」というエラーがスローされますようにです混乱するかもしれない選択スタックトレース
------------------------------------------------------------------------------------------ [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) ------------------------------------------------------------------------------------------
です。ハイバネートバグ(Hibernate 3.3.1を使用しています)について多くのスレッドをオンラインで見つけました。誰もが同じ問題に遭遇しましたか?もしそうなら、あなたはどのように解決しましたか? 入力が高く評価されています。
は 'Group'エンティティを示します。 – Bozho