如何在hibernate@filter条件下获取对象的属性?

vxf3dgd4  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(330)

我有以下Map的超类:

@FilterDef(
        name = "byCompanyUuid",
        parameters = @ParamDef(
                name = "companyUuid",
                type = "string"
        )
)
@Filter(
        name = "byCompanyUuid",
        condition = "COMPANY.UUID = :companyUuid"
)
@MappedSuperclass
public abstract  class CompanyAuditableEntity extends AbstractAuditableEntity {

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "COMPANY")
    protected CompanyEntity company;

    public CompanyEntity getCompany() {
        return company;
    }

    public void setCompany(CompanyEntity company) {
        this.company = company;
    }
}

我想得到companyentity对象的“uuid”参数,并确保它等于:companyuid param。我一整天都在为如何实现这一目标而奋斗。如果可能的话,有人能帮我吗?谢谢。

0md85ypi

0md85ypi1#

如文件所述:
这个 @Filter 条件使用sql条件,而不是jpql筛选 predicate 。
因此,您应该在 @Filter 条件。
同样根据这一点:
当使用 @Filter 注解和处理Map到多个数据库表的实体时,需要使用 @SqlFragmentAlias 如果 @Filter 定义在多个表中使用 predicate 的条件。

相关问题