Hibernate 系列教程12-继承-Join策略
Employee
public class Employee {
private Long id;
private String name;
HourlyEmployee
public class HourlyEmployee extends Employee {
private Double rate;
SalariedEmployee
public class SalariedEmployee extends Employee {
private Double salary;
Employee.hbm.xml
<class name="Employee" table="t_employee">
<id name="id">
<generator class="native" />
</id>
<property name="name" />
<!-- 在配置子类 -->
<joined-subclass name="HourlyEmployee" table="t_HourlyEmployee">
<key column="id"/>
<property name="rate" />
</joined-subclass>
<joined-subclass name="SalariedEmployee" table="t_SalariedEmployee">
<key column="id"/>
<property name="salary" />
</joined-subclass>
</class>
MainTest
public class MainTest {
Session session = null;
@Before
public void save() {
session = HibernateUtils.INSTANCE.getSession();
session.beginTransaction();
Employee employee = new Employee("jege");
HourlyEmployee hourlyEmployee = new HourlyEmployee();
hourlyEmployee.setName("hourly");
hourlyEmployee.setRate(200D);
SalariedEmployee salariedEmployee = new SalariedEmployee();
salariedEmployee.setName("salaried");
salariedEmployee.setSalary(300D);
session.save(employee);
session.save(hourlyEmployee);
session.save(salariedEmployee);
}
@Test
public void get() {
Employee employee = (Employee) session.get(Employee.class, 1L);
System.out.println(employee.getName());
HourlyEmployee hourlyEmployee = (HourlyEmployee) session.get(HourlyEmployee.class, 2L);
System.out.println(hourlyEmployee.getName());
System.out.println(hourlyEmployee.getRate());
SalariedEmployee salariedEmployee = (SalariedEmployee) session.get(SalariedEmployee.class, 3L);
System.out.println(salariedEmployee.getName());
System.out.println(salariedEmployee.getSalary());
}
@After
public void colse() {
session.getTransaction().commit();
session.close();
}
}
源码地址
https://github.com/je-ge/hibernate
如果觉得我的文章对您有帮助,请予以打赏。您的支持将鼓励我继续创作!谢谢!
Hibernate 系列教程12-继承-Join策略的更多相关文章
- Hibernate 系列教程14-继承-PerTable策略
Employee public class Employee { private Long id; private String name; HourlyEmployee public class H ...
- Hibernate 系列教程11-继承-Single Table策略
Single Table策略 通过 discriminator鉴别器来区分是父类还是子类 Employee public class Employee { private Long id; priva ...
- Hibernate 系列教程13-继承-鉴别器与内连接相结合
Employee public class Employee { private Long id; private String name; HourlyEmployee public class H ...
- Hibernate 系列教程3-单表操作
工程截图 hibernate.cfg.xml <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Conf ...
- Hibernate 系列教程2-创建maven工程
第1步:通过eclipse新建1个java maven项目. 选择file–>new–>other–>MAVEN PROJECT选项 第2步:New Maven project 选择 ...
- Python Twisted系列教程12:改进诗歌下载服务器
作者:dave@http://krondo.com/a-poetry-transformation-server/ 译者:杨晓伟(采用意译) 你可以从这里从头阅读这个系列. 新的服务器实现 这里我们 ...
- Hibernate 系列教程17-查询缓存
在二级缓存配置成功的基础上进行查询缓存配置 Product public class Product { private Long id; private String name; Product.h ...
- Hibernate 系列教程16-二级缓存
pom.xml <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate- ...
- Hibernate 系列教程15-一级缓存
Product public class Product { private Long id; private String name; Product.hbm.xml <class name= ...
随机推荐
- Java 相关注意事项小结
程序是一系列有序指令的集合: Java主要用于开发两类程序: 1)桌面应用程序2)Internet应用程序1,Java程序:三步走,编写--编译--运行:2,使用记事本开发:1)以.java为后缀名保 ...
- ConcurrentHashMap完全解析(jdk6/7,8)
并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap ...
- UNIX基础--控制台和终端
虚拟控制台和终端 Virtual Consoles and Terminals: FreeBSD 虚拟控制台的默认配置为8个,但并不是硬性设置, 您可以很容易设置虚拟控制台的个数增多或减少. 虚拟控制 ...
- VC中获取窗口控件相对客户区的坐标
1: RECT rect; 2: GetDlgItem(item_id).GetWindowRect(&rect); 3: ScreenToClient(&rect);
- C#第九天
1.绝对路径和相对路径绝对路径:通过给定的这个路径直接能在我的电脑中找到这个文件. 相对路径:文件相对于应用程序的路径. 结论:我们在开发中应该去尽量的使用相对路径. 2.装箱.拆箱 装箱:就是将值类 ...
- Python 学习笔记4
我是一个艺术家. 今天继续学习python啊.争取看到python流程控制.
- composer安装自己的包
composer的出现,使得PHPer可以像Java一样更加方便的管理代码.在composer没有出现之前,人们大多使用pear.pecl管理依赖,但是局限性很多,也很少有人用(接触的大多phper基 ...
- 配置php开发环境
安装apache 1 loadModule 加载php的模块2 addType 告诉apache凡是php结尾的文件都交给php模块执行3 PHPIniDir 告诉apache php.ini的文件在 ...
- mongoDB7--游标
之前我们学习了"增删改查"四中语法和查询表达式的深入学习,我们已经掌握了一定的操作mongodb数据的能力,那么接下来我们就要考虑我们的操作的效率问题了.(1)游标介绍如果我们查询 ...
- hosts etc css-js
http://laod.cn http://tool.css-js.com/rgba.html