HQL变量过滤案例

时间:2018-03-23 19:49:22

标签: java hibernate spring-boot spring-data-jpa hql

如何更新我的代码以接受过滤器 HQL 4变量过滤案例 让x,y,z;

{

select data from my table  
where   x = :x And y = :y And z =:z
}
if send x , y , z is NULL > 
{
select data from my table


}

如何编辑此

或发送x,y NULL

{
select data from my table  
where   x = :x And y = :y  
}

总结:如何做动态选择雄蕊。 使用 : 1.spring boot 2.JPA 3.hibernate 3.HQL

1 个答案:

答案 0 :(得分:2)

这是一个你可以使用的技巧:

SELECT data
FROM my_table
WHERE (:x IS NULL OR x = :x)
  AND (:y IS NULL OR y = :y)
  AND (:z IS NULL OR z = :z)

请注意检查: :x IS NULL它会检查传递的参数值是否为空。

例如,如果你有这种情况:

X       Y          Z
null    not null   not null

您的查询相当于:

SELECT data FROM my_table WHERE AND y = :y AND z = :z

忽略X的检查。