hibernate视图无主键解决办法
2017-08-07 00:00
651 查看
摘要: No identifier specified for entity解决
使用hibernate创建视图对应的entity时,一直报 No identifier specified for entity 错。查询发现,hibernate映射表的时候entity必须有主键。
但是视图没有主键。解决办法:
给视图创建联合主键,具体操作如下:
1)创建一个包含联合主键的类,并在类上注释@Embeddable
2)在entity类中引用联合主键,并在引用上注解@Id
问题即可得到完美解决
使用hibernate创建视图对应的entity时,一直报 No identifier specified for entity 错。查询发现,hibernate映射表的时候entity必须有主键。
但是视图没有主键。解决办法:
给视图创建联合主键,具体操作如下:
1)创建一个包含联合主键的类,并在类上注释@Embeddable
/** * user_role视图的联合主键 */ @Embeddable public class UserRoleCompositeId implements Serializable{ private static final long serialVersionUID = -3304319243957837925L; @Column(name = "userid") int userid; @Column(name = "sysid") int sysid; @Column(name = "sysname") String sysname; public int getUserid() { return userid; } public void setUserid(int userid) { this.userid = userid; } public int getSysid() { return sysid; } public void setSysid(int sysid) { this.sysid = sysid; } public String getSysname() { return sysname; } public void setSysname(String sysname) { this.sysname = sysname; } @Override public boolean equals(Object o) { if(o instanceof UserRoleCompositeId){ UserRoleCompositeId key = (UserRoleCompositeId)o ; if(this.userid == key.userid && this.sysname.equals(key.sysname) && this.sysid==key.sysid){ return true ; } } return false ; } @Override public int hashCode() { return this.sysname.hashCode(); } }
2)在entity类中引用联合主键,并在引用上注解@Id
@Entity @Table(name = "user_role") public class UserRoleView { @Column(name = "systype") String systype; @Column(name = "perkey") String perkey; @Id private UserRoleCompositeId userRoleCompositeId; public UserRoleCompositeId getUserRoleCompositeId() { return userRoleCompositeId; } public void setUserRoleCompositeId(UserRoleCompositeId userRoleCompositeId) { this.userRoleCompositeId = userRoleCompositeId; } public String getSystype() { return systype; } public void setSystype(String systype) { this.systype = systype; } public String getPerkey() { return perkey; } public void setPerkey(String perkey) { this.perkey = perkey; } }
问题即可得到完美解决
相关文章推荐
- Entity Framework 无法对没有主键的视图映射实体的解决办法
- 关于hibernate查询视图时,相同主键的两条记录映射问题【已解决】
- Entity Framework 无法对没有主键的视图映射实体的解决办法
- Entity FrameWork 实体 视图 无主键 解决办法
- Hibernate新增一条记录,主键为varchar类型的解决办法
- Entity Framework 无法对没有主键的视图映射实体的解决办法
- (无法推断有效的主键。已排除该表/视图)Entity Framework 无法对没有主键的视图映射实体的解决办法
- Hibernate查询视图返回null问题说明及解决办法
- 关于hibernate查询视图时,相同主键的两条记录映射问题【已解决】
- 数据库创建表时没有指定主外键,hibernate 如何 may to one的解决办法,按主键关联也是one to one的一种
- Entity Framework 无法对没有主键的视图映射实体的解决办法
- 用maven管理Spring项目出现org.hibernate.MappingException Unknown entity的问题解决办法
- 出现org.hibernate.NonUniqueResultException的原因即解决办法
- hibernate 程序运行时的错误,及解决办法(不定期更新)
- Asp.net MVC 3 Razor 视图引擎 中使用@输出的内容都会被自动进行HTML编码 问题的解决办法
- Hibernate中遇到的String转Date的问题的解决办法
- sharepoint关于本周视图的一个解决办法(转)
- fastjson在使用hibernate关系模型转json出现$ref解决办法
- select * from 在自定义函数(视图)中的特殊问题(在后面附解决办法)
- ASP.NET Post页面及验证视图状态MAC失败问题的正确解决办法