最近我將我的項(xiàng)目從 Hibernate 版本 3.1 遷移到 4.3,為了獲得更好的性能,我嘗試使用注釋而不是我的 xml 映射。我在繼承類的所有實(shí)體類中都有以下異常。錯(cuò)誤是“ org.休眠。MappingException“我試圖將 targetEntity 添加到 manytoOne 類并添加 @Access(AccessType.PROPERTY) 沒(méi)有任何效果。更改為字段注釋是不可能的,因?yàn)槲矣?150 多個(gè)實(shí)體類。我試圖刪除擴(kuò)展類,它的@override 方法和異常不存在,但是,我需要添加使用它。這是我的實(shí)體類 @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貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
跟繼承關(guān)系不大。閱讀錯(cuò)誤消息。它說(shuō) Hibernate 不知道如何映射實(shí)體dao
類型的屬性。PlanroomMigrationDAO
這個(gè)屬性一開(kāi)始就不應(yīng)該存在:一個(gè)實(shí)體不應(yīng)該負(fù)責(zé)創(chuàng)建 DAO。
但是如果你真的想堅(jiān)持那個(gè)設(shè)計(jì),你需要告訴 JPA dao 不是一個(gè)持久的屬性。這就是注解的作用@Transient
。
添加回答
舉報(bào)
0/150
提交
取消