【问题标题】:Hibernate oneToOne join with additional criteria休眠 oneToOne 加入附加条件
【发布时间】:2023-04-11 07:20:01
【问题描述】:

我需要在 hibernate 中加入,但我想排除一些结果。我试过使用@JoinColumnsOrFormulas,但我仍然得到所有结果

@OneToOne
@JoinColumnsOrFormulas({
        @JoinColumnOrFormula(formula = @JoinFormula(value= "(select a.seller_sku from de_products a where a.asin = 'a' and a.product_name != '' and a.seller_sku != '' and a.seller_sku = sku)", referencedColumnName = "seller_sku")),
        @JoinColumnOrFormula(column = @JoinColumn(name = "sku", referencedColumnName = "seller_sku", insertable = false, updatable = false))
})
public DeProducts getDeProduct() {
    return deProduct;
}

如果我在没有 column 定义的情况下尝试它

@OneToOne
@JoinColumnsOrFormulas({
        @JoinColumnOrFormula(formula = @JoinFormula(value= "(select a.seller_sku from de_products a where a.asin = 'a' and a.product_name != '' and a.seller_sku != '' and a.seller_sku = sku)", referencedColumnName = "seller_sku"))
})
public DeProducts getDeProduct() {
    return deProduct;
}

我在应用程序启动时收到 NullPointerException,在

org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory

如何使用 spring-boot (1.4) hibernate (5.2.2.Final) 加入附加条件/排除项?

【问题讨论】:

    标签: java mysql spring hibernate


    【解决方案1】:

    我想我找到了一个可行的解决方案。当在公式和 @JoinColumn 注释中引用同一列时,Hibernate 似乎忽略了 @JoinForumula。当引用公式中的另一列时 - 例如id,有效。

    @OneToOne
    @JoinColumnsOrFormulas({
            @JoinColumnOrFormula(formula = @JoinFormula(value = "(select a.id from de_products a where a.asin != '' and a.product_name = 'a' and a.seller_sku = sku)", 
                  referencedColumnName = "id")),
            @JoinColumnOrFormula(column = @JoinColumn(name = "sku", referencedColumnName = "seller_sku", insertable = false, updatable = false))
    })
    public DeProducts getDeProduct() {
        return deProduct;
    }
    

    【讨论】:

      猜你喜欢
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 2016-03-15
      • 2021-06-25
      相关资源
      最近更新 更多