gpt4 book ai didi

java - CriteriaBuilder 不粘贴函数参数

转载 作者:行者123 更新时间:2023-12-02 00:29:06 27 4
gpt4 key购买 nike

这是我从 CriteriaBuilder 获得的 hibernate 查询:

select generatedAlias0 from MyObject as generatedAlias0 where 1=1 order by COLLATION_KEY(lower(generatedAlias0.mycol), :param0) asc

:param0 应解析为 UCA400R1,但它被解析为 :param0。问题出在哪里?

cb.function("COLLATION_KEY', String.class, cb.lower(orderExpression), cb.literal("UCA400R1"));

最佳答案

该行为由 LiteralHandlingMode 驱动,它有 3 个设置:

自动
Criteria 查询对任何非数值的文字使用绑定(bind)参数。如果未明确指定配置,这是默认行为。

绑定(bind)
为了增加 JDBC 语句缓存的可能性,您可能还想对数值使用绑定(bind)参数。 BIND 模式将为任何文字值使用绑定(bind)变量。

内联
mode 将按原样内联文字值。为了防止 SQL 注入(inject),切勿将 INLINE 与字符串变量一起使用。始终在 INLINE 模式下使用常量。

要调整默认设置,请相应地设置 hibernate.criteria.literal_handling_mode

关于java - CriteriaBuilder 不粘贴函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58030293/

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