[英]Hibernate / JPA using criteria as annotations
有人知道是否可以通過注釋將標准強加於對象屬性。 這將類似於@Where子句,但是我需要過濾的屬性實際上不在執行SELECT的表上,因為它已被映射。
希望這個例子可以說明:
public class Container {
@OneToMany(mappedBy = "container")
private List<Item> items;
//getter & setter ...
}
public class Item {
@ManyToOne
private Container container;
@OneToOne(mappedBy = "item")
private User user;
//getter & setter ...
}
public class User {
@OneToOne
private Item item;
//getter & setter ...
}
我想獲取一個沒有User
關聯的Container
。 如果user
屬性確實在Item
表上,則應該可以使用@Where:
public class Container {
@OneToOne(mappedBy = "container")
@Where(clause = "user is null")
private List<Item> items;
//getter & setter ...
}
但是由於它是mappedBy,有沒有辦法做到這一點? 這些表上的聯接顯然已經在SQL中執行。 也許有一種方法可以引用user
屬性,例如HQL?
任何幫助表示贊賞
在HQL
:
select item.container from item i where i.user is null
Container.java
@NamedQueries({
@NamedQuery(
name = "findContainerWithNoUser",
query = "select item.container from item i where i.user is null"
)
})
@Entity
public class Container {
@OneToOne(mappedBy = "container")
private List<Item> items;
//getter & setter ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.