Hibernate - Table 每个具体 class 策略 - 每个 table 的单独 ID
Hibernate - Table per concrete class strategy - separate IDs for each table
在我的应用程序中,我有一个会议 object,其属性存储在会议 table 中。
我必须创建一个新的 object,比方说 "meetingNEW" 具有一些不同的属性,但大多数都是通用的。
我正在考虑使用 table 每个具体的 class 策略,但我想为两个 table 使用单独的 ID,而不是从超级class。是否可以?我只查找具有通用 ID 的示例。
我的想法是:
会议类型 -> 抽象超级class
会议扩展了 MeetingType,Meeting_id 作为 PK (table)
MeetingNEW 将 MeetingType 扩展为 meetingNEW_id 作为 PK (table)
谢谢
为什么每个具体的 class 策略都使用 Table?对我来说,似乎 table 每个 subclass 策略如下所示,meeting_type table 具有共同属性,其他 table 具有特定属性和自己的 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();
}
在我的应用程序中,我有一个会议 object,其属性存储在会议 table 中。 我必须创建一个新的 object,比方说 "meetingNEW" 具有一些不同的属性,但大多数都是通用的。
我正在考虑使用 table 每个具体的 class 策略,但我想为两个 table 使用单独的 ID,而不是从超级class。是否可以?我只查找具有通用 ID 的示例。
我的想法是: 会议类型 -> 抽象超级class
会议扩展了 MeetingType,Meeting_id 作为 PK (table)
MeetingNEW 将 MeetingType 扩展为 meetingNEW_id 作为 PK (table)
谢谢
为什么每个具体的 class 策略都使用 Table?对我来说,似乎 table 每个 subclass 策略如下所示,meeting_type table 具有共同属性,其他 table 具有特定属性和自己的 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();
}