HQL 变量 过滤案例
Posted
技术标签:
【中文标题】HQL 变量 过滤案例【英文标题】:HQL variables Filter cases 【发布时间】:2018-09-02 14:01:53 【问题描述】:如何更新我的代码以接受过滤器 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.弹簧靴 2.JPA 3.休眠 3.HQL
【问题讨论】:
【参考方案1】:这是一个你可以使用的技巧:
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 的检查被忽略。
【讨论】:
为空,怎么办?? 如果 x = null : 从 my_table 中选择数据 WHERE (:y IS NULL OR y = :y) AND (:z IS NULL OR z = :z) 这样做??? @hOS 然后 x 将被忽略,例如 x 为 null 而 y 和 z 不是,那么您的查询相当于SELECT data FROM my_table WHERE AND y = :y AND z = :z
以上是关于HQL 变量 过滤案例的主要内容,如果未能解决你的问题,请参考以下文章