@Inheritance(strategy =&nbs…
来源:互联网 发布:淘宝代购怎么找 编辑:程序博客网 时间:2024/05/21 07:19
考虑下面一种情况
建立一个“Human”类,作为抽象类。
[java] viewplaincopy
- @Entity
- @Inheritance(strategy
= InheritanceType.JOINED) - public
abstract class Human implementsSerializable { -
private static final long serialVersionUID = 1856374544815477685L; -
//.......................................... - }
建立一个“Employee”类,继承Human。
[java] viewplaincopy
- @Entity
- @Table(name="EMPLOYEE_INFO")
- public
class Employee extendsHuman { -
//............................... - }
下面是一个Award类型,其中“奖励记录发布人”不能指定为任何一种具体的"human", 因此必须声明为"Human"类型。
[java] viewplaincopy
- @Entity
- public
class Award implementsSerializable { -
-
@ManyToOne -
private Human publisher; -
-
//.................................... - }
此时如果采用的表生成策略是InheritanceType.TABLE_PER_CLASS,而非代码中所示的InheritanceType.JOINED的话,程序就无法正确运行。
根据这种表生成策略,HUMAN表里面将不会有任何信息。而AWARD表里面的外键引用的却是HUMAN表的ID。同时程序也不会知道当前的赋值给当前publisher的对象到底是存放在Employee对应的表里面还是其他Human的子类对应表里面。
因此,table_per_class的表生成策略,只有在抽象类不会在其他实体的代码中被引用的时候才适用。
0 0
- @Inheritance(strategy =&nbs…
- zoj2008 || poj1511&nbs…
- kdevelop + konsole&nbs…
- android videoview&nbs…
- poll, select &&nbs…
- Start/stop Oracle&nbs…
- unsupported major.minor&nbs…
- iOS UIDeviceOrientation&nbs…
- Remove WifiStateTracker&nbs…
- Remove WifiStateTracker&nbs…
- 关于Expression: invalid&nbs…
- intel fortran11.0&nbs…
- 【PHP】symfony Warning:&nbs…
- storm-Understanding the&nbs…
- 【转】android Videoview&nbs…
- NSUserdefaults 对象存储&nbs…
- ALV demo:cl_salv_table&nbs…
- ALV demo:cl_salv_table&nbs…
- 计算当前最大z-index
- svg引入
- svg 画箭头
- svg 画箭头2
- svg和js交互
- @Inheritance(strategy =&nbs…
- CodeForces 398A Cards
- javascript数组移出
- 字符串查找有多少个字母
- eclispe 快捷键
- 精简Oracle客户端+PLSQL Deve…
- sql数据库导入导出
- java计算当前时间和对比的过期时间…
- 动态规划详细解析---及各类问题解决方案