Tôi đang cố gắng sử dụng chú thích ngủ đông để viết một lớp mô hình cho các bảng cơ sở dữ liệu của tôi.Làm cách nào để tạo một ràng buộc khóa ngoài bằng cách sử dụng chú thích ngủ đông?
Tôi có hai bảng có mỗi Người dùng và Câu hỏi chính.
@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
}
Bảng câu hỏi.
@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
}
Và tôi có thêm một bảng, UserAnswer, trong đó có userId và questionId là khóa ngoại từ hai bảng trên.
Nhưng tôi không thể tìm thấy cách tôi có thể tham chiếu các ràng buộc này trong bảng 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
}
Hãy giúp tôi đạt được điều này? Cảm ơn trước.
Cảm ơn bạn rất nhiều vì đã trả lời. Có cần phải tạo cột mới trong bảng là useranswer_id không? Có thể nếu tôi có thể tạo hai id khác làm khóa tổng hợp? – vikiiii
Có thể, nhưng thiết kế xấu, đau đớn, khó sử dụng và không hiệu quả. Làm điều đúng và gán một ID cột đơn, được tạo tự động cho tất cả các thực thể của bạn. –
@JB_Nizet Tôi không nhớ thêm cột id vào thực thể. Nhưng tôi cần phải thêm một cột trong bảng? Tôi có nghĩa là cơ sở dữ liệu oracle. – vikiiii