【发布时间】:2019-03-22 01:14:33
【问题描述】:
假设我有一个与 Order 有“OneToMany”关系的实体对象 Customer。我希望当“客户”被加载时,只有 ID = 1234, 5678 的订单被加载。
有什么想法吗?
@Entity
@Table(name = "Customer")
public class Customer extends TraceableJPA {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "customer_id")
private Long id;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "Customer", targetEntity = Order.class)
@Column(name = "order_id", value = {"1234","5678"} (?))
@OrderBy("isrtdate ASC")
@BatchSize(size = 20)
private List<Order> orders = new ArrayList<Order>();
【问题讨论】:
-
你不能那样做。如果
Customer有一些订单符合您的过滤条件,而有一些订单不符合...那么运气不好,您将得到与Customer相关的所有内容。@Column注释的 javadocs 清楚地说明了它允许什么以及它的用途。 -
我不是要求使用@Column。这只是一个例子。随意建议另一个@...它只是希望能够过滤此变量的包含,只要准确知道结帐的订单即可。
-
“你不能那样做”。真的无法得到更明确的结论......
标签: jpa annotations one-to-many identity-column