我想映射一個Java映射表,其中所有鍵值存儲在同一個表中。 與https://en.wikibooks.org/wiki/Java_Persistence/Relationships#Example_of_a_map_key_column_relationship_database 類似的東西,但關鍵是一個對象,而不是一個簡單的類型。Jpa Hibernate映射鍵多列關係
說我有一個實體的 「用戶」
@Entity
public class User{
@Id
private String userId;
@OneToMany
@MapKeyClass(CalenderWeek.class)
private Map<CalenderWeek, WorkedTime> workedTimeMap;
關鍵CalendarWeek會是這樣的
@Embeddable
public class CalenderWeek {
int year;
Month month; // Month is the enum java.time.Month
的WorkedTime會是這樣的
@Embeddable
public class WorkedTime {
private long workedHours;
相應的工作時間表應該是這樣的
worked_time
user_id | year | month | worked_hours
---------|------|-------| ---
1 | 2017 | 11 | 42
是否有可能拿到 或做我必須做如下描述 https://en.wikibooks.org/wiki/Java_Persistence/Relationships#Example_of_a_map_key_class_embedded_relationship_annotation
即,三個用表。
只是爲了讓它完成@CollectionTable( 名= 「worked_time」, joinColumns = @ JoinColumn(名=「user_id」) ) 也是需要的。 – fan