0

在我的应用程序中,我有一个会议对象,其属性存储在会议表中。我必须创建一个新对象,比方说“meetingNEW”有一些不同的属性,但大多数都是常见的。

我正在考虑使用每个具体类策略的表,但我想为这两个表设置单独的 id,而不是从超类继承它。是否可以?我只找到具有共同 id 的示例。

我的想法是:MeetingType -> 抽象超类

Meeting 以 Meeting_id 作为 PK 扩展 MeetingType(表)

MeetingNEW 扩展 MeetingType 与 meetingNEW_id 作为 PK(表)

谢谢

4

1 回答 1

0

为什么你使用 Table per specific class strategy ?对我来说,似乎每个子类的表策略如下所示,其中 meeting_type 表具有公共属性,而其他表具有特定属性并具有自己的 PK id。

 @Entity @Inheritance(strategy = InheritanceType.JOINED)
 public class MeetingType {
      @Id
      @Column("meeting_type_id")  
      public long getId();
 }

 @Entity @PrimaryKeyJoinColumns({ @PrimaryKeyJoinColumn(name = "meeting_id", referencedColumnName = "meeting_type_id") })
 public class Meeting extends MeetingType {
   @Column("meeting_id")  
   public long getMeetingId();
 }

 @Entity @PrimaryKeyJoinColumns({ @PrimaryKeyJoinColumn(name = "meeting_new_id", referencedColumnName = "meeting_type_id") })
 public class MeetingNew extends MeetingType {
   @Column("meeting_new_id")  
   public long getMeetingNewId();
}
于 2015-08-18T08:40:34.383 回答