设为首页 加入收藏

TOP

JPA实体继承实体的映射策略(三)
2015-07-20 18:05:29 来源: 作者: 【 】 浏览:6
Tags:JPA 实体 继承 映射 策略
tatic final long serialVersionUID = -6122347374515830424L; @Column(name = "hourly_wage") private Float hourlyWage; // getter/setter方法 }这会映射成三个具体的表,分别是,Employee对应EMP表,字段包括empId、name;FullTimeEmployee对应FT_EMP表,字段包括empId、salary;PartTimeEmployee对应PT_EMP表,字段包括empId、hourly_wage。其中,表FT_EMP和PT_EMP中的empId和EMP表的empId没有任何关系。子类实体每保存一条数据,EMP表中不会插入记录。
而且主键的生成策略不能使用GenerationType.AUTO或GenerationType.IDENTITY,否则会出现异常:
org.hibernate.MappingException: Cannot use identity column key generation with mapping for: com.mikan.PartTimeEmployee

因为TABLE_PER_CLASS策略每个表都是单独的,没有并且各表的主键没有任何关系,所以不能使用GenerationType.AUTO或GenerationType.IDENTITY主键生成策略,可以使用GenerationType.TABLE。

具体可参考:http://stackoverflow.com/questions/916169/cannot-use-identity-column-key-generation-with-union-subclass-table-per-clas

如果超类是抽象类,那么不会生成对应的表。如果超类是具体的类,那么会生成对应的表。

以上实例使用JPA的hibernate实现测试通过。

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇UVa 825 Walking on the Safe Sid.. 下一篇C++ 复制函数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: