我正在使用如下定义的 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 值吗?
问候,
希里什语