xem xét sau hai mối quan hệ:Hibernate: Tiêu chí với bảng kết nối nhiều người?
@Entity class Foo {
@Id id;
@ManyToMany
@JoinTable(name = "ATag",
joinColumns = @JoinColumn(name = "foo_id"),
inverseJoinColumns = @JoinColumn(name = "tag_id"))
Set<Tag> tags;
}
@Entity class Tag {
@Id Long id;
String name;
}
Không có lớp thực thể tương ứng cho bảng tham gia ATAG. Bây giờ, tôi muốn có được tất cả các phiên bản Foo với Thẻ có tên 'tag1', có thể sử dụng Chỉ tiêu chí không?
Truy vấn phụ có thể hữu ích, tuy nhiên, tôi không thể tạo DetachedCriteria cho lớp ATag.class không tồn tại.
Điều quan trọng cần lưu ý là sử dụng thuộc tính của đối tượng chứ không phải đối tượng. Hibernate sử dụng Restrictions không chỉ sử dụng khóa chính được định nghĩa POJO. Ở đây ví dụ sử dụng tên thuộc tính của các thẻ đối tượng. Tôi đã mất thời gian cố gắng đặt toàn bộ đối tượng thay vì nói rõ ràng thuộc tính nào cần được kiểm tra theo biến vị ngữ tiêu chí. –
Tại sao cần sử dụng bí danh? Bạn không thể đơn giản sử dụng 'tags.name' thay vì' tagsAlias.name'? – sp00m
Tạo bí danh khiến cho việc tham gia bên trong diễn ra tự động. – derrik