hibernate 继承映射 joined-subclass
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; }}
生成三张数据表
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
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
