我必须建立模型,即 paymentRecon 和 waybill。一个 paymentRecon 下可以有一组运单。但不想将运单与它紧密耦合。所以我创建如下模型:
付款侦察
@SuppressWarnings("serial")
@Entity
public class PaymentReconciliation extends BaseEntity {
@Column
private String parentId;
@Column
private BigDecimal grossAmount;
@Column
private String currency;
@Column
private Integer totalNumberOfPackages;
@Column
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "PayReconWaybillMap", joinColumns = {
@JoinColumn(name = "reconId") }, inverseJoinColumns = {
@JoinColumn(name = "waybillId") })
private Set<WayBill> waybill = new HashSet<WayBill>();
}
瓦比尔
@SuppressWarnings("serial")
@Entity
public class PaymentReconciliation extends BaseEntity {
@Column(nullable = false, unique = true)
private String barCode;
@Column
private String consigneeName;
@Column
@JsonIgnore
private String countryCode;
}
现在,我有三张 table 。 所以开发完之后事情就结束了。我需要获取未附加到任何 paymentRecon 的运单。谁能帮助我如何得到这个。
最佳答案
您可以将“连接表”映射到新实体 PayReconWaybillMap
上,使用 PaymentReconciliation
上的 @ManyToOne
来引用此中间实体:
@ManyToOne
private PayReconWaybillMap pwm;
在 PayReconWaybillMap
实体中:
@OneToMany
private List<PaymentReconciliation> pr;
@OneToMany
private List<WayBill> wb;
因此,您可以使用 JOIN,如下所示:
SELECT wb FROM WayBill wb
LEFT JOIN PayReconWaybillMap pwm ON pwm.waybillId = wb.waybillId
WHERE pwm IS NULL
关于java - 来自单方的多对多关系需要来自另一方的 jpq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52813916/