すべてのキー値が同じテーブルに格納されている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がWorkedTimeが
@Embeddable
public class WorkedTime {
private long workedHours;
が働いて対応するようになり、この
@Embeddable
public class CalenderWeek {
int year;
Month month; // Month is the enum java.time.Month
ようなものになるだろうがあるとタイムテーブルはこのようになります
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
すなわち、3つのテーブルで、ここで説明したように、私はそれをしなければならない行うことです。
のように終わった注釈付きバージョン(名= "user_id") ) も必要です。 – fan