Hãy nói rằng tôi có hai bảng sau:Làm thế nào để tôi tham khảo các cột chỉ được ánh xạ cho các kết nối trong JPQL?
@Entity public class Foo {
@Id private int id;
@ManyToOne()
@JoinColumn(name = "bar_id")
private Bar bar;
}
@Entity public class Bar {
@Id private int id;
private Boolean flag;
}
Và tôi muốn viết một truy vấn JPQL rằng những thay đổi một số Bar.flag
giá trị dựa trên một tập hợp các Foo
id.
Nếu đây là SQL đơn giản tôi muốn viết một cái gì đó như thế này:
UPDATE Bar SET flag = true WHERE id IN (SELECT bar_id from FOO where id = 3);
Bạn không thể dịch này để JPQL Tuy nhiên, bởi vì cột bar_id
không được ánh xạ đến một thuộc tính của thực thể.
Vì bar_id
không được ánh xạ trực tiếp trên Foo
Thực thể, làm cách nào tôi có thể đạt được loại truy vấn này trong JPQL?
bộ sưu tập ở đâu? –
không phải câu trả lời này? http://stackoverflow.com/questions/3629259/how-do-i-do-a-jpql-subquery –
@sashok_bg Tôi đã không thử nó, nhưng tôi không nghĩ rằng sẽ bởi vì tôi không có các khóa ngoài thô được ánh xạ trong thực thể ('p.country_id' trong ví dụ của chúng) – SCdF