繁体   English   中英

JPA - 用条件连接两个实体

[英]JPA - Join two entities with a condition

我有 2 个实体 A 和 B,我想在 2 个条件下加入:

SELECT * FROM A JOIN B ON A.A_ID = B.A_ID AND SYSDATE BETWEEN B.START_DATE AND B.END_DATE


Class A {
    
    @Id
    @Column(name = "A_ID")
    String aId;
    
    @Column(name = "A_NAME")
    String aName;
    
    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "aId", nullable = false, insertable = false, updatable = false)  // Add SYSDATE condition here
    Set<B> B bObjects;
    
}

Class B {
    
    @Column(name = "A_ID")
    String aId;
    
    @Column(name = "B_ID")
    String bId;
    
    @Column(name = "B_NAME")
    String bName;
    
    @Column(name = "START_DATE")
    LocalDate startDate;
    
    @Column(name = "END_DATE")
    LocalDate endDate;
}

不确定如何在@JoinColumn注释中添加 SYSDATE BETWEEN B.START_DATE AND B.END_DATE 条件?

据我所知,你不能通过简单的注释来做到这一点。

尽管如此,在您的 JPA 查询中,您可以使用 ON 子句,如果您使用 JPA 2.1。 你有一个例子: 如何使 CriteriaBuilder 加入一个自定义的“on”条件?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM