84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
问题是:需要在数据库mysql中建多张结构完全相同,表名不同的表(A B),表结构为id(自增),name,....笨办法是给A B表分别写个类,差别只在注解上:
@Table(name = "A/B")
但是不想维护属性相同的两个类,考虑过使用JPA的继承注解.
@Inheritance(Strategy=InheritanceType.TABLE_PER_CLASS)
但使用这个注解后主键值不能采用数据库自动生成.
各位大神,有什么好的解决方案嘛?求指教。
欢迎选择我的课程,让我们一起见证您的进步~~
JPA の同じエンティティを複数のテーブルにマッピングすることはできません。テーブルのフィールドが同じであれば、それらをパブリック クラスに配置できます。
1. パブリック クラス エンティティを定義します
@MappedSuperclass アノテーションを使用して親クラスを宣言します。このクラスはデータベース テーブルにマップされませんが、その属性はそのサブクラスのデータベース テーブルにマップされます。
2. エンティティ A を定義します
3. エンティティ B を定義します
上記は、パブリック クラスを通じてエンティティとテーブル フィールド間のマッピング関係を維持するために使用できます。
@MappedSuperclass アノテーションの詳細については、「JPA @MappedSuperclass アノテーションの使用手順」を参照してください。
JPA の同じエンティティを複数のテーブルにマッピングすることはできません。テーブルのフィールドが同じであれば、それらをパブリック クラスに配置できます。
1. パブリック クラス エンティティを定義します
@MappedSuperclass アノテーションを使用して親クラスを宣言します。このクラスはデータベース テーブルにマップされませんが、その属性はそのサブクラスのデータベース テーブルにマップされます。
リーリー2. エンティティ A を定義します
リーリー3. エンティティ B を定義します
リーリー上記は、パブリック クラスを通じてエンティティとテーブル フィールド間のマッピング関係を維持するために使用できます。
@MappedSuperclass アノテーションの詳細については、「JPA @MappedSuperclass アノテーションの使用手順」を参照してください。