4.8. 关于 HQL predicates
predicates 形成 where 子句、包含 子句 和 搜索案例表达式的基础。它们是可解析为真实值的表达式,通常是 TRUE 或 FALSE,尽管涉及 NULL 值的布尔值比较通常解析为 UNKNOWN。
HQL 谓词
null Predicate
检查 null 值。可以应用到基本属性引用、实体引用和参数。HQL 还允许将它应用到组件/嵌入式类型。
示例:NULL Check
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 像 Predicate
执行类似于字符串值的比较。语法为:
like_expression ::= string_expression [NOT] LIKE pattern_value [ESCAPE escape_character]like_expression ::= string_expression [NOT] LIKE pattern_value [ESCAPE escape_character]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 语义遵循 SQL 等表达式的语义。
pattern_value是在 string_expression 中尝试匹配的模式。正如 SQL 一样,mod_value可以使用_(下划线)和%(百分比)作为通配符。含义相同。_匹配任何单个字符。%匹配任意数量的字符。可选的s
cap_character用于指定用于转义pattern_value中_和%的特殊含义的转义字符。这在需要搜索模式(包括_ 或%)时非常有用。示例:LIKE Predicate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Predicate 间
类似于 SQL
BETWEEN表达式。执行评估,说明值在 2 个其他值范围内。所有操作对象都应具有可比较类型。示例:BETWEEN Predicate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow IN Predicate
INpredicate 执行检查特定值是否在值列表中。它的语法是:Copy to Clipboard Copied! Toggle word wrap Toggle overflow single_valued_expression 的类型和 single_valued_list 中的单个值必须一致。Jakarta Persistence 查询语言将此处的有效类型限制为字符串、数字、日期、时间、时间戳和枚举类型。在 Jakarta Persistence 查询语言 中,single_valued_expression 只能指:- "状态字段",这是简单属性的术语。特别是,这不包括关联和组件/嵌入式属性。
实体类型表达式.
在 HQL 中,
single_valued_expression 可以指一组更广泛的表达式类型。允许单值关联。同样是组件/嵌入式属性,尽管该功能取决于底层数据库中对元或"行值构造器语法"的支持级别。此外,HQL 不会以任何方式限制值类型,但应用开发人员应该意识到,不同的类型可能会基于底层数据库供应商获得有限的支持。这主要是 Jakarta Persistence 查询语言限制的原因。值列表可能来自多个不同来源。在
constructor_expression和collection_valued_input_parameter中,值列表不能为空;它必须至少包含一个值。示例:IN Predicate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow