字符串数组中的休眠搜索
Posted
技术标签:
【中文标题】字符串数组中的休眠搜索【英文标题】:Hibernate search in string array 【发布时间】:2016-01-16 18:18:21 【问题描述】:我不熟悉休眠并正在寻找 a) 一个解决方案 b) 解决方案在性能和查询复杂性方面的比较。
示例实体 - (假设需要休眠注释)
Class Ent
String name;
List<String> alias;
我需要一个解决方案,它可以在单个数据库查询中搜索名称和别名数组中的字符串“示例”。
我可以使用带有 RAW sql (select * ...) 的 hibernate 来做到这一点。有人可以使用 HQl、Criteria 等提出更好的解决方案吗
【问题讨论】:
我相信你想说 HQL。我尝试使用 HQL 但遇到问题,因为 hibernate 不支持 SQL 中存在的任何运算符。我正在与 IN 运营商合作.. 【参考方案1】:假设alias
可以为空:
select distinct e from Ent e left outer join e.alias a
where e.name like :term or a.name like :term
或:
select e from Ent e
where e.name like :term
or e.id in
(select e2.id from Ent e2 join e2.alias a where a.name like :term)
我更喜欢第二个选项,因为它应该更快(不是distinct
),并且可以更轻松地对结果进行分页。
【讨论】:
以上是关于字符串数组中的休眠搜索的主要内容,如果未能解决你的问题,请参考以下文章