08-07
04
hibernate one to one 关系的实现
作者:Java伴侣 日期:2008-07-04
先休息一下眼睛再看以下主题内容吧
one to one 是一种数据库中的一对一的关系,比如在中国一个人只有一张身份证,人跟身份证就是一对一的关系,在hibernate中怎么实现这个做法了,这里数据库有两个 表,一个是user,一个是card,先为他们建一个对应的form类,在User类建一个 Card card对象,在Card类建一个User user对象,这样实现持久化中的你中有我,我中有你,hibernate当中肯定少不了的就是配置各个表的信息了。
以下是配置User表:
复制内容到剪贴板 程序代码
<hibernate-mapping>
<class name="org.tinna.User" table="user">
<id name="userid" type="java.lang.Integer">
<column name="userid" />
<generator class="native" />
</id>
<property name="username" type="java.lang.String">
<column name="username" length="20" />
</property>
<one-to-one name="card" class="org.tinna.Card" cascade="all"></one-to-one>
</class>
</hibernate-mapping>
<class name="org.tinna.User" table="user">
<id name="userid" type="java.lang.Integer">
<column name="userid" />
<generator class="native" />
</id>
<property name="username" type="java.lang.String">
<column name="username" length="20" />
</property>
<one-to-one name="card" class="org.tinna.Card" cascade="all"></one-to-one>
</class>
</hibernate-mapping>
配置Card表:
复制内容到剪贴板 程序代码
<hibernate-mapping>
<class name="org.tinna.Card" table="card">
<id name="cardid" type="java.lang.Integer">
<column name="cardid" />
<generator class="foreign" >
<param name="property">user</param>
</generator>
</id>
<property name="cardnum" type="java.lang.Integer">
<column name="cardnum" />
</property>
<one-to-one name="user" class="org.tinna.User"></one-to-one>
</class>
</hibernate-mapping>
<class name="org.tinna.Card" table="card">
<id name="cardid" type="java.lang.Integer">
<column name="cardid" />
<generator class="foreign" >
<param name="property">user</param>
</generator>
</id>
<property name="cardnum" type="java.lang.Integer">
<column name="cardnum" />
</property>
<one-to-one name="user" class="org.tinna.User"></one-to-one>
</class>
</hibernate-mapping>
这样user和card就实现约束了,现在举例说明应用:
复制内容到剪贴板 程序代码
User user=new User();
user.setUsername("zhangsan1");
Card card=new Card();
user.setCard(card);
card.setCardnum(new Integer(9));
card.setUser(user);
UserDAO userdao=new UserDAO();//只要这样就可以在user表和card表增加数据了
userdao.save(user);
user.setUsername("zhangsan1");
Card card=new Card();
user.setCard(card);
card.setCardnum(new Integer(9));
card.setUser(user);
UserDAO userdao=new UserDAO();//只要这样就可以在user表和card表增加数据了
userdao.save(user);
今天就说到这里,可能说的不是很清楚!
评论: 0 | 引用: 0 | 查看次数: 980
发表评论