2011-09-08 177 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