假設我有這樣的代碼:
Entity
public class Order {
private Integer exampleNumber;
// ...
}
@Entity
public class User {
private List<Order> orders;
private Integer exampleNumber;
@OneToMany(fetch = FetchType.LAZY)
@JoinColumns({@JoinColumn(name = "user_nr", referencedColumnName = "id")})
public List<Order> getOrders() {
return this.orders;
}
public Integer getExampleNumber() {
return this.exampleNumber;
};
// ...
}
我只想在我的方法 getOrders() 中獲取 User.getExampleNumber() = Order.getExampleNumber 中的那些訂單。如何以最簡單的方式向此方法 getOrders() 添加條件?可以在@Filter、@WhereJoinTable 中傳遞引數還是我需要使用其他東西?
uj5u.com熱心網友回復:
這在 JPA 中是不可能傳遞值的
但是你可以使用
@Where
喜歡
@Where(clause="example_nr=...")
否則,建議的方法是使用 Hibernate 標準。
Criteria criteria = session.createCriteria(User.class);
...
uj5u.com熱心網友回復:
在用戶模型中放置此代碼
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="post")
private List<Order> orders;
在訂單表中放置此代碼
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "user_id", nullable = false)
@JsonIgnore
private User user;
有了這個,您可以在獲取用戶詳細資訊時獲取與用戶相關的所有訂單
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/337008.html
上一篇:休眠@ManyToMany堅持
