gpt4 book ai didi

hibernate 搜索和关系

转载 作者:行者123 更新时间:2023-12-05 00:39:22 28 4
gpt4 key购买 nike

我有一个名为 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...
}

我正在使用 JBoss Seam/Hibernate Search 来索引这些对象,以便我可以对它们执行搜索查询。我希望能够搜索 MyItemBean具有给定关键字值的实例。然而,这种关系是单向的,因为我申请了 KeywordBean反对的不仅仅是 MyItemBean .我在 Hibernate Search 文档中查看了有关如何索引关系的示例,但它们提供的所有示例都是双向的。谁能告诉我我需要在 MyItemBean.keywords 上应用哪些注释?正确索引关键字值?

最佳答案

要使用的注释是 IndexedEmbedded。它也适用于单向关联。如果您正在更改 KeywordBean 的值,则可能会出现问题 Hibernate Search 无法更新引用已更改 KeywordBean 的 MyItemBean 实例的索引。在双向关系中,您可以使用 @ContainedIn 来解决此问题,但您实际上并不需要它。在您的用例中提供此索引更新约束可能不是问题。也许您的 KeywordBean 没有改变。或者,如果它发生变化,您可以重新索引所有受到手动影响的 *KeywordBean*s。

——哈代

关于 hibernate 搜索和关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4481335/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com