Sha*_*man 4 lucene search hibernate relation hibernate-search
我有一个对象MyItemBean
,可以有0个或更多关联KeywordBean
对象.结果类看起来像这样:
@Entity
public class MyItemBean {
...stuff...
@ManyToMany(targetEntity = KeywordBean.class, cascade = CascadeType.PERSIST)
@JoinTable(name = "tbl_item_keyword", joinColumns = @JoinColumn(name = "item_id"), inverseJoinColumns = @JoinColumn(name = "keyword_id"))
private List<KeywordBean> keywords = null;
...more stuff...
}
@Entity
public class KeywordBean {
...stuff...
private String value=null;
...more stuff...
}
Run Code Online (Sandbox Code Playgroud)
我正在使用JBoss Seam/Hibernate Search来索引这些对象,以便我可以对它们执行搜索查询.我希望能够搜索MyItemBean
具有给定关键字值的实例.然而,这种关系是单向的,因为我KeywordBean
不仅仅应用对象MyItemBean
.我在Hibernate Search文档中查看了如何索引关系的示例,但它们提供的所有示例都是双向的.谁能告诉我需要应用哪些注释来MyItemBean.keywords
正确索引关键字值?
要使用的注释是IndexedEmbedded.它也适用于单向关联.如果要更改KeywordBean的值,则可能会出现问题Hibernate Search无法更新引用已更改的KeywordBean的MyItemBean实例的索引.在双向关系中,您可以使用@ContainedIn来解决此问题,但您并不需要这样做.在您的用例中提供此索引更新约束可能不是问题.也许您的KeywordBean没有改变.或者,如果它发生变化,您可以重新索引受手动影响的所有*KeywordBean*.
--Hardy
归档时间: |
|
查看次数: |
1354 次 |
最近记录: |