Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HQL变量过滤器案例_Java_Hibernate_Spring Boot_Spring Data Jpa_Hql - Fatal编程技术网

Java HQL变量过滤器案例

Java HQL变量过滤器案例,java,hibernate,spring-boot,spring-data-jpa,hql,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空值 { select data from my table where x = :x And y = :y } 如何

如何更新我的代码以接受筛选器 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空值

{
select data from my table  
where   x = :x And y = :y  
}
如何做动态选择雄蕊。 使用: 1.弹簧靴 2.JPA 3.冬眠
3.HQL

以下是一个您可以使用的技巧:

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为NULL
它将检查传递的参数值是否为NULL

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

X       Y          Z
null    not null   not null
您的查询相当于:

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


忽略对X的检查。

为null,怎么办?如果X=null:从my_表中选择数据,其中(:y为null或y=:y)和(:z为null或z=:z)这样做???@hOS那么X将被忽略,例如X为null,y和z不为空,那么您的查询相当于从my_表中选择数据,其中和y=:y和z=:z