首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询单向many2one索引

查询单向many2one索引
EN

Stack Overflow用户
提问于 2018-11-23 13:52:00
回答 1查看 31关注 0票数 0

我试图将Hibernate搜索索引设置为以下关系:

DocVersion *<-> Document2 -> DocType

代码语言:javascript
复制
@Indexed
@Entity
public class Document2 implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    @Column(name = "doc_uuid")
    private long id;

    @IndexedEmbedded
    @ManyToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY)
    @JoinColumn(name = "documentType")
    private DocType docType;
}



@Indexed
@Entity
public class DocType implements  Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    @Column(name = "doctype_id")
    private long id;

    @Field
    @Column(name = "documentType")
    private String documentType;
}

所以它是来自Document2类的统一Document2关系,因为DocType只是一个可编码的。

但是,我需要根据cdt的属性(如document2.docType.documentType )查询索引,这给了我:

代码语言:javascript
复制
WARNING: org.hibernate.search.exception.SearchException: Unable to find field document2.docType.documentType in com.nws.vedica.model.entity.DocVersion

我遗漏了什么?

hibernate-搜索:5.9.3最后

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-23 15:38:49

因此,我错过了@ContainedIn,这需要在@IndexedEmbedded的另一边。在Document2对我来说

代码语言:javascript
复制
    @ContainedIn
    @OneToMany(mappedBy = "document2", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @org.hibernate.annotations.Cache(
            usage = CacheConcurrencyStrategy.READ_WRITE
    )
    private Set<DocVersion> docVersions;

而在DocType中,作为一个“叶子”,根本不需要链接到Document2

希望这对某人有帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53447967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档