Citizen类:
public class Citizen { private Integer id; private String name; private Address address; public Citizen() { } public Citizen(String name, Address address) { this.name = name; this.address = address; } // Getters and setters are omitted }
Address类:
public class Address { private String province; private String city; private String district; public Address() { } public Address(String province, String city, String district) { this.province = province; this.city = city; this.district = district; } // Getters and setters are omitted }
Citizen.hbm.xml:
<hibernate-mapping package="com.john.myhibernate.domain"> <class name="Citizen" table="citizen"> <id name="id"> <generator class="native"/> </id> <property name="name" length="28" not-null="true" /> <component name="address"> <property name="province"/> <property name="city"/> <property name="district"/> </component> </class> </hibernate-mapping>
测试保存:
public void testSave() { Session s = null; Transaction tx = null; Address address = new Address("Zhejiang", "Hangzhou", "Binjiang"); Citizen citizen = new Citizen("Tremendously", address); try { s = HibernateUtil.getSession(); tx = s.beginTransaction(); s.save(citizen); tx.commit(); } catch (HibernateException e) { if (tx != null) tx.rollback(); e.printStackTrace(); } finally { if (s != null) s.close(); } }
数据库记录:
id | name | province | city | district |
1 | Tremendously | Zhejiang | Hangzhou | Binjiang |