组件(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(); } } |