2016-07-12 18 views
1

休止状態にあるものと一つのレコードを探しますBのディップより大きく、Bのサイプよりも大きく、BのIDはCのIDとジョイントしている。ただ、好きは次のとおりです。、二つの条件の代わりに、3つのテーブルA、BおよびCがあり

@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

あなたは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) 
関連する問題