有三个表A,B和C,如下:
A: id ip
B: id cid sip dip
C: id
在A.java
中,我希望设置< C>,其中A的ip小于B的下降并且大于B的sip,并且B的id与C的id相关联。如下所示:
@JoinTable(name="A", joinColumns={@JoinColumn(name ="sip", referencedColumnName = "ip"),@JoinColumn(name ="dip", referencedColumnName = "ip")},
inverseJoinColumns={@JoinColumn(name ="cid")})
@WhereJoinTable(clause="ip::inet between sip::inet and dip::inet")
但它没有用。有没有人碰巧遇到过这个问题呢?
答案 0 :(得分:0)
您正在寻找JoinColumsOrFormulas
。我不确定你的表结构是什么,以及你想要加入的是什么,但下面是一个连接(primaryKey)@JoinColumn
- sku和匹配的id的连接的工作示例@JoinFormula
@OneToOne
@JoinColumnsOrFormulas({
@JoinColumnOrFormula(formula = @JoinFormula(value = "(select a.id from uk_products a where a.asin != '' and a.product_name != '' and a.seller_sku = sku)", referencedColumnName = "id")),
@JoinColumnOrFormula(column = @JoinColumn(name = "sku", referencedColumnName = "seller_sku", insertable = false, updatable = false))
})
@JoinColumn(name = "sku", referencedColumnName = "seller_sku", insertable = false, updatable = false)