查询与Hibernate中的集合匹配的实体

时间:2011-05-26 18:26:24

标签: java hibernate

想象一下我有两个实体 - 标签和文本,其中Text有多个标签,我想用它们做几件事。如果你能帮我提出一个优雅的解决方案,我将非常高兴。

我想一次按多个标签搜索文本实体 - 所有标签必须匹配

我想通过多个标签搜索文本实体,第二个参数指定必须多少马赫

我想指定标签的对或三元组,其中每对中至少有一个必须匹配

有什么建议吗?谢谢

1 个答案:

答案 0 :(得分:0)

无论您使用SQL,HQL还是JPQL,这些答案几乎都是一样的:

  

我想通过搜索文本实体   多个标签一次 - 所有标签必须   匹配

where text like %tag1% and text like %tag2% // etc.
  

我想通过搜索文本实体   多个标签,第二个参数   指定必须有多少马赫

StringBuilder sb = new StringBuilder();
for(int i = 0; i < howmany; i++){
   sb.append('%').append(param);
}
sb.append('%');

String query = "some query text where " + sb.toString()
  

我想指定对或   标签的三元组,其中至少有一个   每一对必须匹配

where text like %tag1% or text like %tag2% -- etc