问题是:需要在数据库mysql中建多张结构完全相同,表名不同的表(A B),表结构为id(自增),name,....
笨办法是给A B表分别写个类,差别只在注解上:
@Table(name = "A/B")
但是不想维护属性相同的两个类,考虑过使用JPA的继承注解.
@Inheritance(Strategy=InheritanceType.TABLE_PER_CLASS)
但使用这个注解后主键值不能采用数据库自动生成.
各位大神,有什么好的解决方案嘛?求指教。
问题是:需要在数据库mysql中建多张结构完全相同,表名不同的表(A B),表结构为id(自增),name,....
笨办法是给A B表分别写个类,差别只在注解上:
@Table(name = "A/B")
但是不想维护属性相同的两个类,考虑过使用JPA的继承注解.
@Inheritance(Strategy=InheritanceType.TABLE_PER_CLASS)
但使用这个注解后主键值不能采用数据库自动生成.
各位大神,有什么好的解决方案嘛?求指教。
4 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
3 回答1.9k 阅读
2 回答773 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.3k 阅读
JPA中同一实体不能映射到多张表,如果表字段相同可以提出到公共类中。
1. 定义公共类实体
使用@MappedSuperclass注解声明父类,该类不会映射到数据库表,但它的属性都将映射到其子类的数据库表中。
2. 定义实体A
3. 定义实体B
以上即可通过公共类来维护实体和表字段的映射关系。
@MappedSuperclass注解的更多说明请查看:JPA @MappedSuperclass注解的使用说明