Join Query需要转换为Hibernate Search Query

时间:2014-08-26 07:22:56

标签: hibernate lucene hibernate-search

我需要将SQL连接查询转换为Hibernate Search Query。我一直在寻找它,但找不到办法。需要转换的查询是:

select * from document_field inner join document_version on document_field.document_id=document_version.document_id where (document_version.content like '%query%' or document_field.value like '%query%') order by document_field.document_id;

实际上我需要与查询字符串匹配的文档ID。文档字段表中的值字段和文档版本表中的内容字段使用hibernate搜索进行索引。所有实体都是休眠实体。实体看起来像这样:

public class Document {

 private long id;
 private String name;
 private Timestamp tstamp;

 private Set<DocumentField> documentFields = new HashSet<DocumentField>();
 ...
}

public class DocumentField {
  private long id;
  @Field(index=Index.TOKENIZED, store=Store.NO)
  private String value;

  private Document document;
  ...
}

public class DocumentVersion {
 private long id;
 private long documentId;
 @Field(index=Index.TOKENIZED, store=Store.NO)
 private String content;
 ...
}

所有实体都是注释。我只想获取其字段与查询匹配或其文档版本内容与查询匹配的文档的文档ID。任何人都可以帮助我。

0 个答案:

没有答案