kglife developer's blog | our web,our life

十一/09

29

hibernate one to one 的实现

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 />
            </id>
            <property name=”username” type=”java.lang.String”>
                <column name=”username” length=”20″ />
            </property>
            <one-to-one name=”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 >
                 <param name=”property”>user</param>
                </generator>
            </id>
            <property name=”cardnum” type=”java.lang.Integer”>
                <column name=”cardnum” />
            </property>
            <one-to-one name=”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);

Comments are closed.

>>