gpt4 book ai didi

java - Hibernate 查询上的链接 setParameter

转载 作者:行者123 更新时间:2023-12-01 23:34:37 27 4
gpt4 key购买 nike

如您所见,我有两个命名参数,一个由 setParameterList() 设置,一个由 setParmeter() 设置。问题是列表没有排序。当我显式设置订单字段时,它工作正常,但相同的字符串被传递到方法中,它不起作用。难道setParameter和setParameterList不能链接起来吗?他们都返回一个查询,我不明白为什么不这样做。我错过了什么?

public List<Subject> getSubjectsByMedium(String orda, Medium... medium) {
List<Subject> subjects = currentSession().createQuery("from Subject where medium in(:medium) order by :orda").setParameterList("medium", medium).setParameter("orda", orda).list();
return Subjects;
}

最佳答案

不,这不是方法链的问题。问题是您无法使用命名参数在 HQL(或 SQL)查询中设置 ORDER

您需要单独构建查询字符串,然后在创建的 Query 对象上设置 :medium 命名参数。

String query = "from Subject where medium in(:medium) order by " + orda;

这可能会让您容易受到 SQL 注入(inject)的攻击。

关于java - Hibernate 查询上的链接 setParameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18898315/

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