我是hibernate的新手并且正在寻找 a)解决方案 b)在性能和查询复杂性方面比较解决方案。
示例实体 - (假设需要hibernate注释)
Class Ent{
String name;
List<String> alias;
}
我需要一个解决方案,可以在单个数据库查询中搜索名称和别名数组中的字符串'example'。
我可以使用hibernate和RAW sql(select * ...)来做到这一点。有人可以建议使用HQl,Criteria等更好的解决方案..原因
答案 0 :(得分: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
),因为它可以更轻松地分页结果。