把你要用到的table通过hibernate映射出来就可以了 我觉得三个table都需要映射
解决方案 »
- 推荐一本javaEE整合了struts2,hibernate,spring3的实战项目的书
- webservice客户端错误 大家帮看下 急 谢谢
- 關于DWR同步設置的怪異問題
- 关于验证报错的问题一个很基础的问题
- xfire webservice客户端与服务端Date 与XMLGregorianCalendar类型转换问题。
- 谁知道怎么弹出个小窗体,用于提示、
- spring中事务嵌套问题,在线等回复。。。
- 在jsp中怎么对sql注入代码进行过滤?能有详细代码吗?谢谢啦,帮忙撒
- 急需解析PDF文件的jar包,各位若有,马上高分相送,在线等,多谢!
- 急!怎么样用JDBC连接局域网内另一台机器上的Sybase数据库?在线等
- 润乾报表问题
- 在myeclipse当中如何使用Hibernate插件?
父表:员工表
子表:离职表,调职表、在职表......用hibernate的继承策略可以搞定
第 9 章 继承映射(Inheritance Mappings)
9.1. 三种策略
Hibernate支持三种基本的继承映射策略: 每个类分层结构一张表(table per class hierarchy) 每个子类一张表(table per subclass) 每个具体类一张表(table per concrete class) 此外,Hibernate还支持第四种稍有不同的多态映射策略: 隐式多态(implicit polymorphism) 对于同一个继承层次内的不同分支,可以采用不同的映射策略,然后用隐式多 态来完成跨越整个层次的多态。但是在同一个<class>根元素 下,Hibernate不支持混合了元素<subclass>、 <joined-subclass>和<union-subclass> 的映射。在同一个<class>元素下,可以混合使用 “每个类分层结构一张表”(table per hierarchy) 和“每个子类一张表”(table per subclass) 这两种映射策略,这是通过结合元素<subclass>和 <join>来实现的(见后)。 在多个映射文件中,可以直接在hibernate-mapping根下定义subclass,union-subclass和joined-subclass。也就是说,你可以仅加入一个新的映射文件来扩展类层次。你必须在subclass的映射中指明extends属性,给出一个之前定义的超类的名字。注意,在以前,这一功能对映射文件的顺序有严格的要求,从Hibernate 3开始,使用extends关键字的时侯,对映射文件的顺序不再有要求;但在每个映射文件里,超类必须在子类之前定义。 .......
就不全贴了,楼主去Hibernate_3.2.0_Reference_zh_CN.chm文档上找到这章,仔细看看吧
一起看成是对象的属性。也就是看成是否离职?是否调职?就像可视
化组件的Visible属性的是否可见一样。一旦Visible属性为真(也
就是确实离职或确实调职),便会引发对象的其他一些属性也可以进
行确定,如大小,颜色等。但是,这些对于对象来说,都是相同的,
都是属性。也就是说,如果离职为真,那么就可以确定离职原因,离
职描述,离职批准人等。但这些都是相同的元素,都是对象的属性。
所以,如果面向对象,就不应该建3个table。而只应该建一个,每一
行都是一个对象的属性。有一列离职,用0和1表示真和假,查表时先查
此列,若为假就不必查如离职原因,离职描述,离职批准人之类的属性
了。就像是先看可视化组件的Visible属性是否为真,若为假就无需
去看如大小,颜色之类的属性了。因为,组件不可见时,大小或者颜色
根本就如同不存在。调职也是相同的,这样一来,你的表会减少很多重
复的列,也就基本不会有交集了,呵呵
员工表加一个状态值就ok了,区别离职与在职(实在要加换岗状态也行),新员工a进来,建立员工表记录,状态在职,
a在公司内部换岗,建立换岗记录表,员工表只是部门字段变化,换岗表与员工表关系n对1,
a从公司离职,建立离职表,员工表员工状态离职,一般是1对1把,别说这人进进出出的,你说的动作 需要表对它进行记录,所以有添加离职表,换岗表记录,
对应的员工状态会有所变化,所以对员工表进行修改,