Trong câu hỏi & Trường hợp danh mục, bạn nên sử dụng mối quan hệ @ManyToMany. @ManyToMany về cơ bản có nghĩa là "một Câu hỏi có thể thuộc về nhiều Danh mục cùng một lúc" và "Danh mục có thể chứa nhiều Câu hỏi cùng một lúc". Một bảng mới sẽ tự động được tạo để lưu trữ ánh xạ. Mã của bạn sẽ trông như thế này:
@Entity
public class Question implements Serializable {
...
@ManyToMany
private List<Category> categories;
...
}
@Entity
public class Category implements Serializable {
...
@ManyToMany
private List<Question> questions;
...
}
Nếu bạn sử dụng mối quan hệ @OneToMany cho câu hỏi và hạng mục của bạn (giả sử loại trên Một bên và câu hỏi trên khác), điều này có nghĩa rằng "câu hỏi chỉ có thể thuộc về một Danh mục "và" Danh mục có thể chứa nhiều Câu hỏi cùng một lúc ". Không cần có bảng mới để lưu trữ ánh xạ. Thay vào đó, một trường mới sẽ tự động được tạo ở bên Nhiều để ghi lại ID của Một bên. Mã của bạn sẽ trông giống như sau:
@Entity
public class Question implements Serializable {
...
@ManyToOne
private Category theCategory;
...
}
@Entity
public class Category implements Serializable {
...
@OneToMany(mappedBy="theCategory")
private List<Question> questions;
...
}
Nguồn
2011-11-19 11:56:37
Giải thích tuyệt vời. Nên có nhiều upvotes hơn. – LppEdd