最近我将我的项目从 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
提交
取消