首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

hibernate 一对一单向注解 主表主键联系关系从表的非主键

2014-01-09 
hibernate 一对一单向注解 主表主键关联从表的非主键请教大神们,小弟感激不尽现在有两张表userinfo 和 use

hibernate 一对一单向注解 主表主键关联从表的非主键
请教大神们,小弟感激不尽
现在有两张表userinfo 和 userinfodetail
userinfo有一个字段id自增长,userinfo有一个id自增长和userinfoid两个字段hibernate 一对一单向注解 主表主键联系关系从表的非主键
现在让userinfo的主键id关联userinfodetail的userinfoid

userinfo实体类注解
@OneToOne(cascade=CascadeType.ALL)@JoinColumn(name="id",referencedColumnName="userinfoid",unique=true,nullable=false)
public Userinfodetail getUserInfoDetail() 
hibernate打印出on userinfo.id=userinfodetail_.id 
也就是说referencedColumnName不起作用
当name写上一个不存在的值时,比如name="aaa"
hibernate会打印出on userinfo.aaa=userinfodetail_.userinfoid 
此时referencedColumnName起了作用,好纠结,我们公司大牛都没什么办法

[解决办法]
一般hiberbate注解是外键关联主键,所以建议你在userinfdetail写上关联信息,如果想要主表关联从表,建议再在主表加上一个字段来关联从表的主键就可以了
[解决办法]
之前遇到过,这个应该是hibernate没实现好,本来按照JPA的@JoinColumn的API说明referencedColumnName不写默认为主键写了就应该去映射里面的字段,可hibernate在OneToOne的单向关联下就死活不认.这种情况楼主如果一定要让他起作用了别用OneToOne用ManyToOne,这个就能让referencedColumnName起作用

热点排行