hibernate 组件映射

本文介绍Hibernate中如何使用组件映射实现对复杂属性的持久化处理。通过具体示例,展示了Teacher类及其Address组件的定义、配置文件Teacher.hbm.xml的内容,并提供了一个简单的测试用例来验证组件映射的有效性。

组件(Component)映射

1、  类Teacher

publicclass Teacher {

   privateintid;

   private String name;

   private String sex;

   private Address address;

//省略get/set

   }

2、  类Teacher的组件 Address

publicclass Address {

   private String addr1;

   private String addr2;

   private String addr3;

   //省略get/set

}

3、  Teacher.hbm.xml

<hibernate-mapping package="cn.siggy.pojo">

   <class name="Teacher">

      <id name="id">

         <generator class="native"></generator>

      </id>

      <property name="name"/>

      <property name="sex"/>

      <!-- 组件 -->

      <component name="address" class="Address">

         <property name="addr1"/>

         <property name="addr2"/>

         <property name="addr3"/>

      </component>

   </class>

</hibernate-mapping>

4、  测试

@Test

   publicvoid testSave() throws HibernateException, SerialException, SQLException{

      Session session = null;

      Transaction tx = null;

      try{

         session = HibernateUtil.getSession();

         tx = session.beginTransaction();

         Teacher t = new Teacher();

         t.setName("老裴");

         t.setSex("");

         Address address = new Address();

         address.setAddr1("西三旗");

         address.setAddr2("西直门");

         address.setAddr3("南六环");

         t.setAddress(address);

        

         session.save(t);

        

         tx.commit();

        

      }catch (HibernateException e) {

         if(tx!=null)

            tx.rollback();

         e.printStackTrace();

         throw e;

      }finally{

         HibernateUtil.closeSession();

      }

   }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小胖墩有点瘦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值