hibernate一对多外键关联

xiaomi_1982 2008-02-24 03:17:54
虚心向大家请教:
两个表:一个为用户表,一个为用户资质表.形成一对多关系.用户表有主键ID、SFZH(非主键)。用户资质表有SFZH(非主键)等
关联字段为SFZH(身份证号).该怎样实现关联呢?
后来我把用户资质表也加了主键ID。关联代码如下:
Users.hbm.xml
<set name="userZz" cascade="none" lazy="true" table="ZJ_U_USER_ZZ">
<key column="SFZH" foreign-key="SFZH"></key>
<one-to-many class="com.mi.hibernate.base.ZjUUserZz" />
</set>
------------------------
UserZz.hbm.xml
<many-to-one name="user"
column="SFZH"
class="com.mi.hibernate.base.ZjUUsers" cascade="none"
fetch="join"/>
-------------------
我在测试添加时:
ZjUUsers user=new ZjUUsers();
user=(ZjUUsers)s.get(ZjUUsers.class, "4028e4dc1849858e0118498854f80001");
ZjUUserZz userZz=new ZjUUserZz();
userZz.setYxsj("2008-10-21");
user.getUserZz().add(userZz);
userZz.setUser(user);
s.save(userZz);
s.beginTransaction().commit();
报错 ORA-01401: 插入的值对于列过大,好像是把用户表ID添加到用户资质表SFZH字段中了。
请问大家一下,配置文件该怎样修改呢或者测试代码哪有问题呢,在此谢谢大家了。。
...全文
553 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
老紫竹 2008-02-24
  • 打赏
  • 举报
回复
<key column="SFZH" property-ref="SFZH"/>
老紫竹 2008-02-24
  • 打赏
  • 举报
回复
关联字段为SFZH(身份证号).
为何不用ID呢?
身份证会变得,可ID不会!
加油馒头 2008-02-24
  • 打赏
  • 举报
回复
ZjUUsers user=new ZjUUsers();
user=(ZjUUsers)s.get(ZjUUsers.class, "4028e4dc1849858e0118498854f80001");
ZjUUserZz userZz=new ZjUUserZz();
userZz.setYxsj("2008-10-21");
user.getUserZz().add(userZz); //你是不是只是添加一条用户资质表的信息,与用户相关联就可以了.所以这句话觉得没什么必要,因为你上面已经查出用户的信息了,它应该会自动 管理的.
userZz.setUser(user);
s.save(userZz);
s.beginTransaction().commit();

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧