Hibernate 基于主键的单向1-1
一直不理解这个...试了试一个例子...
比如一个User有一个Name,User可以getName().Name不能得到user。
User中除了Name属性外还有一个id(int)属性做为表示。Name中只有一个name属性(String)。
User.hbm.xml设置主键的时候:
<id name="id">
<generator class="foreign">
<param name="property">name</param>
</generator>
</id>
然后运行的时候会报
IllegalArgumentException
是不是因为User的主键id是int类型,Name的主键是string类型,把string赋值给int所以出错?!
如果是这样的话那基于主键的单向1-1,两个关联的类的主键不仅要是同一类型而且值也要一样?
大家平时是怎么处理这种关联的呢?<many-to-one>再加上unique吗?
------解决方案--------------------一对一 两种方法
1.共享主键 必须一致
2.唯一外键 外键和主表的主键一致