最近我將我的項目從 Hibernate 版本 3.1 遷移到 4.3,為了獲得更好的性能,我嘗試使用注釋而不是我的 xml 映射。我在繼承類的所有實體類中都有以下異常。錯誤是“ org.休眠。MappingException“我試圖將 targetEntity 添加到 manytoOne 類并添加 @Access(AccessType.PROPERTY) 沒有任何效果。更改為字段注釋是不可能的,因為我有 150 多個實體類。我試圖刪除擴展類,它的@override 方法和異常不存在,但是,我需要添加使用它。這是我的實體類 @Entity @Table(name = "mapusergroups", catalog = "designdb") public class Mapusergroups extends PlanroomMigrationEntity implements java.io.Serializable {private int idMapUserGroups;private Groups groups;private Users users;public Mapusergroups() {}public Mapusergroups(Groups groups, Users users) { this.groups = groups; this.users = users;}@Id@GeneratedValue(strategy = IDENTITY)@Column(name = "idMapUserGroups", unique = true, nullable = false)public int getIdMapUserGroups() { return this.idMapUserGroups;}public String getIdMapUserGroupsString() { return "" + this.idMapUserGroups;}public void setIdMapUserGroups(int idMapUserGroups) { this.idMapUserGroups = idMapUserGroups;}@ManyToOne(fetch = FetchType.LAZY, targetEntity = Groups.class)@JoinColumn(name = "FK_idGroups", nullable = false)@PlanroomMigrationEntity.PathUpToCompanypublic Groups getGroups() { return this.groups;}public void setGroups(Groups groups) { this.groups = groups;}@ManyToOne(fetch = FetchType.LAZY, targetEntity = Users.class)@JoinColumn(name = "FK_idUsers", nullable = false)@PlanroomMigrationEntity.ReferenceToUserpublic Users getUsers() { return this.users;}public void setUsers(Users users) { this.users = users;}@Overridepublic BaseWrapper<?> getWrapper() { return new WMapUserGroups(this);}@Overridepublic PlanroomMigrationDAO getDao() { return new MapUserGroupsDAO();}
1 回答

郎朗坤
TA貢獻1921條經驗 獲得超9個贊
跟繼承關系不大。閱讀錯誤消息。它說 Hibernate 不知道如何映射實體dao
類型的屬性。PlanroomMigrationDAO
這個屬性一開始就不應該存在:一個實體不應該負責創建 DAO。
但是如果你真的想堅持那個設計,你需要告訴 JPA dao 不是一個持久的屬性。這就是注解的作用@Transient
。
添加回答
舉報
0/150
提交
取消