我有一个 HQL 查询,它使用跨多个表的数据来提取对象列表。部分查询需要区分大小写的比较,但数据库上的默认排序规则是不区分大小写的。
我知道我可以将查询转换为 SQL 我可以通过指定collate utf8_bin
(我的目标是 MySql 数据库)来解决问题,但这需要更复杂的查询(从代码理解和维护的角度来看)所以我想避免如果可能,请使用 SQL 选项。
不幸的是,HQL 不包含collate
令牌。
有没有办法在 HQL 查询中插入 SQL 片段?
您可以尝试以下方法
@Column(name = "uuid", columnDefinition = "varchar(23) COLLATE utf8_bin")
参考:https ://forum.hibernate.org/viewtopic.php?f=9&t=998806&view=next