4

我正在使用如下定义的 Hibernate 过滤器:

@FilterDef(
    name = "DeptFilter",
    parameters = {
        @ParamDef(name = "schoolCode", type = "string"),
        @ParamDef(name = "deptCode", type = "string")
    }
)
@Filter(
    name = "DeptFilter",
    condition = "(:schoolCode = schoolCode and (deptCode IS NULL or :deptCode = deptCode))"
)

在我的情况下,所有部门都可以使用一些数据,在这种情况下,我将部门值保持为 NULL。

Filter sessionFilter = session.enableFilter("DeptFilter");
sessionFilter.setParameter("schoolCode", schoolId.getSchoolCode());
sessionFilter.setParameter("deptCode", schoolId.getDeptCode());

Query query = session.createQuery("from Inbox where assignedTo = :assignedTo ")
        .setParameter("assignedTo", userRole);

当我将 NULL 值作为 Dept Code 参数传递时。我收到以下异常:

Caused by: org.hibernate.HibernateException: Filter [DeptFilter] parameter [deptCode] value not set

我也尝试使用空字符串(“”),但在这种情况下,我没有得到空白/空部门 ID 的记录。

你能告诉我如何处理过滤器中的 NULL 值吗?

问候,

希里什语

4

0 回答 0