我想使用hibernate注释为我的数据库表编写模型类。如何使用hibernate注释创建外键约束?
我有两个表,每个都有一个主键User和Question。
@Entity
@Table(name="USER")
public class User
{
@Id
@Column(name="user_id")
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column(name="username")
private String username;
// getter and setter
}
问题表。
@Entity
@Table(name="QUESTION")
public class Questions extends BaseEntity{
@Id
@Column(name="question_id")
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Column(name="question_text")
private String question_text;
// getter and setter
}
而且我还有一个表,UserAnswer,其中有帐户及questionId从上面两个表的外键。
但我无法找到如何在UserAnswer表中引用这些约束。
@Entity
@Table(name="UserAnswer ")
public class UserAnswer
{
@Column(name="user_id")
private User user;
//@ManyToMany
@Column(name="question_id")
private Questions questions ;
@Column(name="response")
private String response;
//getter and setter
}
请帮我实现这个目标吗? 在此先感谢。
非常感谢您的回复。是否有必要在表中创建一个新的列作为useranswer_id?如果我可以将其他两个ID作为复合键,有可能吗? – vikiiii 2013-03-15 07:43:51
这是可能的,但它是糟糕的设计,痛苦,难以使用和效率低下。做正确的事情,并为所有实体分配自动生成的单列ID。 – 2013-03-15 07:46:07
@JB_Nizet我不介意给一个实体添加一个id列。但是,我需要在表中添加一列吗?我的意思是oracle数据库。 – vikiiii 2013-03-15 07:48:41