您的位置:首页 > 其它

Hibernate 菜鸟教程 10 组成关系

2016-11-20 23:03 393 查看

GitHub

组成关系

在一个员工模型里面需要存入

员工公司所在地址的城市,街道

员工籍贯所在的城市,街道,

此时可以抽取城市,街道变成一个模型即是组成关系

模型对象Employee

public class Employee {
private Long id;
private String name;
// 公司的地址
private Address comAddress;
// 籍贯所在地
private Address homeAddress;


映射文件Employee.hbm.xml

<class name="Employee" table="t_employee">
<id name="id">
<generator class="native" />
</id>
<property name="name" />
<!-- 组成关系:以对象的方式来解决重复的信息 -->
<!-- 公司所在的地址 -->
<!-- class必须配置为全类名 -->
<component name="comAddress" class="Address">
<!-- property:name必须配置成java的属性,column配置成数据库的字段,而且不能重复 -->
<property name="city" column="com_city" />
<property name="street" column="com_street" />
</component>
<!-- 籍贯所在的地址 -->
<component name="homeAddress" class="Address">
<property name="city" column="home_city" />
<property name="street" column="home_street" />
</component>
</class>


测试对象MainTest

public class MainTest {
Session session = null;

@Before
public void save() {
session = HibernateUtils.INSTANCE.getSession();
session.beginTransaction();
Address comAddress = new Address("bj", "st1");
Address homeAddress = new Address("sh", "st2");

Employee employee = new Employee("user");
employee.setComAddress(comAddress);
employee.setHomeAddress(homeAddress);

session.save(employee);
}

@Test
public void get() throws Exception {
Employee employee = (Employee) session.get(Employee.class, 1L);
System.out.println(employee);
System.out.println(employee.getComAddress());
System.out.println(employee.getHomeAddress());
}

@After
public void colse() {
session.getTransaction().commit();
session.close();
}
}


源码地址

https://github.com/je-ge/hibernate

如果觉得我的文章或者代码对您有帮助,可以请我喝杯咖啡。

您的支持将鼓励我继续创作!谢谢!



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: