gpt4 book ai didi

java - 带两个参数的 Hibernate IN 查询

转载 作者:太空宇宙 更新时间:2023-11-04 08:37:19 26 4
gpt4 key购买 nike

我需要构造一个 hibernate 查询来执行如下操作:

select p from Person p where (p.name, p.surname) in (('Peter', 'Black'), ('Thomas', 'Peterson'), ('Julia', 'Cook'))

名字/姓氏列表的长度没有预先定义,名字和姓氏可以包含任何字符(名字和姓氏命名仅用于说明目的)

此外,我想插入这些值作为查询参数以防止 SQL 注入(inject)。

Not Acceptable 解决方案:

(p.name || '--' || p.surname) in (:mergedNameSurname)

我想避免的解决方案:

((p.name = :name1 and p.surname = :surname1) or (p.name = :name2 and p.surname = :surname2) ...)

您知道如何做到这一点吗?

最佳答案

我认为没有一个干净的 Hibernate 解决方案可以解决这个问题。您可以采用建议的两种方法之一,也可以添加一个非规范化列来表示两列的串联。即使使用这种方法,您最终也会构建类似于最终查询的内容。

关于java - 带两个参数的 Hibernate IN 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6070140/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com