java 代码
- public class User implements java.io.Serializable {
- // Fields
- private long id;
- private String name;
多方拥有一方的属性Email将User作为自己的属性.
java 代码
- public class Email implements java.io.Serializable {
- // Fields
- private long id;
- private User user;
- private String email;
在配置文件中,一方的没啥变化.
xml 代码
- <hibernate-mapping>
- <class name="org.tie.User" table="user" catalog="tie">
- <id name="id" type="long">
- <column name="id" />
- <generator class="native" />
- </id>
- <property name="name" type="string">
- <column name="name" length="45" not-null="true" />
- </property>
- </class>
- </hibernate-mapping>
在多方需要加入many-to-one
xml 代码
- <hibernate-mapping>
- <class name="org.tie.Email" table="email" catalog="tie">
- <id name="id" type="long">
- <column name="id" />
- <generator class="native" />
- </id>
- <many-to-one name="user" class="org.tie.User" fetch="select">
- <column name="uid" not-null="true" />
- </many-to-one>
- <property name="email" type="string">
- <column name="email" length="45" not-null="true" />
- </property>
- </class>
- </hibernate-mapping>
java 代码
- public void testCreate(){
- Email email1 = new Email();
- email1.setEmail("linweihan@163.com");
- Email email2 = new Email();
- email2.setEmail("linweiyang@163.com");
- User user = new User();
- user.setName("lin");
- email1.setUser(user);
- email2.setUser(user);
- Session session = factory.openSession();
- Transaction tr = session.beginTransaction();
- session.save(user);
- session.save(email1);
- session.save(email2);
- tr.commit();
- session.close();
- }
- public void testRetrieve(){
- Session session = factory.openSession();
- Email email = (Email)session.load(Email.class, new Long(1));
- System.out.println(email.getUser().getName());
- session.close();
- }