2011-09-08 268 views
3

我有一個Task表。它有一個外鍵task_status_id
我有一個TaskStatus表。它有兩個主鍵:task_status_idlang_id
我有一個LanguageType表。它有一個主鍵lang_id
休眠外鍵

我想知道如何映射這種關係在休眠。

+0

你的意思TaskStatus.task_status_id是主鍵和TaskStatus.lang_id是一個外鍵?否則,您似乎有一個引用多列主鍵的單列外鍵(Task.task_status_id)。 –

+0

是的,不,TaskStatus有兩個主鍵,task_status_id和lang_id。但是,lang_id也是一個外鍵。 – guest

回答

6

我想,這可能會做你想要什麼:

@Entity 
public class Task { 
    @Id @GeneratedValue(strategy = GenerationType.AUTO) 
    @Column(name = "task_id") 
    private int id; 
    @ManyToOne 
    @JoinColumn(name = "task_status_id") 
    TaskStatus status; 
} 

@Entity 
public class TaskStatus { 
    @Id @GeneratedValue(strategy = GenerationType.AUTO) 
    @Column(name = "task_status_id") 
    private int id; 
    @ManyToOne 
    @JoinColumn(name = "lang_id") 
    LanguageType languageType; 
} 

@Entity 
public class LanguageType { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    @Column(name = "lang_id") 
    private int id; 
} 
+0

恩,謝謝你的幫助。我想知道如何在hbm文件中映射這種關係。 – guest

+0

我修改了這個taskStatus.hbm,但它似乎不起作用。<多對一名稱=「taskStatus」class =「com.entity.TaskStatus」> \t \t guest