hibernate 继承映射 joined-subclass
2010-04-25 19:21
477 查看
package subclass.map; /** * 普通员工 * @author wangtao * */ public class Staff { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
package subclass.map; /** * 正式工 * @author wangtao * */ public class FormalStaff extends Staff { // 正式员工有 工号 private String staffId; public String getStaffId() { return staffId; } public void setStaffId(String staffId) { this.staffId = staffId; } }
package subclass.map; /** * 临时工有 * @author wangtao * */ public class TempStaff extends Staff { // 临时工 - 工时 private int hours; public int getHours() { return hours; } public void setHours(int hours) { this.hours = hours; } }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="subclass.map"> <class name="Staff" table="T_subclass_staff"> <id name="id"> <generator class="native" /> </id> <property name="name" type="string" length="20"></property> <joined-subclass name="FormalStaff" table="T_subclass_staff_Formal"> <key column="formal_id"></key> <property name="staffId" type="string" length="20"></property> </joined-subclass> //key 定义的列既是主键 又是外键 <joined-subclass name="TempStaff" table="T_subclass_staff_Temp"> <key column="temp_id"></key> <property name="hours"></property> </joined-subclass> </class> </hibernate-mapping>
生成三张数据表
staff : id name
formal: formal_id staffId
temp: temp_id hours
package subclass.map.test; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import subclass.map.FormalStaff; import subclass.map.Staff; import subclass.map.TempStaff; /** * 双向一对多 * 增删改查测试 * @author wangtao * */ public class Test { static Session session; static{ SessionFactory fac = new Configuration().configure().buildSessionFactory(); session = fac.openSession(); } public static void main(String[] args) { insert(); } public static void insert(){ Staff staff = new Staff(); staff.setName("tao"); FormalStaff formal = new FormalStaff(); formal.setStaffId("idxxxx"); TempStaff temp = new TempStaff(); temp.setHours(20); Transaction tx = session.beginTransaction(); tx.begin(); session.save(staff); session.save(formal); session.save(temp); tx.commit(); System.out.println("插入完成....."); } }
插入完成后,
staff 中的 记录为
1 tao
2 null
3 null
formal 中的记录为
2 idxxxxx
temp 中的记录为
3 20
相关文章推荐
- Hibernate继承映射:每个子类一张表(joined-subclass)表结构
- Hibernate继承映射:每个子类一张表(joined-subclass)表结构
- hibernate 继承映射joined-subclass
- hibernate 继承映射 joined-subclass
- [原创]java WEB学习笔记87:Hibernate学习之路-- -映射 继承关系(subclass , joined-subclass,union-subclass )
- hibernate继承关系的映射(single_table,class_per_table,joined)
- 继承关系映射--joined-subclass 元素映射继承关系
- 继承映射关系 joinedsubclass的查询
- hibernate 继承映射union-subclass
- 6.2.1 继承映射:采用joined-subclass元素的继承映射
- Hibernate 继承关系 对象关系映射--joined-subclass ,测试 crud
- Hibernate逍遥游记-第10章 映射继承关系-003继承关系树中的每个类对应一个表(joined-subclass)
- hibernate 继承映射subclass
- Hibernate深入学习(三):继承与多态查询,joined-subclass与union-subclass
- 继承映射---6.2.2: 采用joined-subclass元素的继承映射
- hibernate继承关系的映射(single_table,class_per_table,joined)
- hibernate中继承映射的三种方式(SINGLE_TABLE,TABLE_PER_CLASS,JOINED)
- Hibernate基础------》映射关系---》继承映射-》join_subclass映射(每个类对应一张表)
- hibernate继承关系的映射(single_table,class_per_table,joined)
- Hibernate入门07_继承映射02_joined方式