User类: 注意他的name属性
- package dao.po;
- /**
- * User类 (组件映射一例)
- *
- * user表要保存 User类 与 Name类 的信息
- *
- * Name类, 他不会单独保存再一张表中,没有Name.hbm.xml
- */
- public class User
- {
- private int id;
- private Name name; //是Name类型, 他不会单独保存再一张表中,没有Name.hbm.xml
- private String email;
- }
伦理片 http://www.dotdy.com/
- package dao.po;
- /**
- *
- * Name类 (组件映射一例)
- *
- * 他不是po, 不会单独保存再一张表中,没有Name.hbm.xml
- *
- */
- public class Name
- {
- private String fristName;
- private String lastname;
- }
User.hbm.xml:
- <?xml version="1.0"?>
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping
- package="dao.po">
- <class name="User">
- <id name="id">
- <generator class="native"/>
- </id>
- <property name="email" />
- <!-- 组件映射 -->
- <component name="name">
- <property name="fristName" column="frist_name"/>
- <property name="lastname" column="last_name"/>
- </component>
- </class>
- </hibernate-mapping>
保存操作:
- package dao;
- import org.hibernate.Session;
- import org.hibernate.Transaction;
- import dao.po.Name;
- import dao.po.User;
- /**
- * 组件映射一例
- *
- */
- public class Component
- {
- public static void main(final String[] args)
- {
- add();
- }
- public static void add()
- {
- final Name name = new Name();
- name.setFristName("周");
- name.setLastname("星驰");
- final User u = new User();
- u.setEmail("email@gmail.com");
- u.setName(name); //建立关联
- Session session = null;
- try
- {
- session = HibernateUtil.getSeesion();
- final Transaction tx = session.beginTransaction();
- session.save(u);
- tx.commit();
- }
- finally
- {
- if (session != null)
- {
- session.close();
- }
- }
- }
- }