【问题标题】:@IndexedEmbedded on logical relationship@IndexedEmbedded 逻辑关系
【发布时间】:2013-05-17 16:07:55
【问题描述】:

我有两个表(外部的,所以我不能修改它)。表只有逻辑关系(一个有其他的参考 ID),没有 @OneTo* 注释。

Hibernate Search 是否可以索引这些相关对象?

代码示例:

@Entity
@Indexed
@Table(name = "E1")
public class E1 implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ID")
    private Long id;

    @Column(name = "NAME", length = 32, nullable = false)
    private String name;

    @Column(name = "E2_FK", nullable = false)
    @IndexedEmbedded    // ???? 
    private Long e2Id;
}

@Entity
@Table(name = "E2")
public class E2 implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ID")
    private Long id;

    @Column(name = "DESCRIPTION", length = 4000, nullable = false)
    @Field
    private String description;
}

【问题讨论】:

    标签: hibernate hibernate-search


    【解决方案1】:

    不,在这种情况下,Hibernate Search 不能索引关联的对象。它对此一无所知。您的映射不包含任何指向休眠(搜索)的指针,即 e2Id 是另一个实体的主键。 @IndexedEmbedded 用于关联实体。

    你为什么不做这个真正的联想。如果这是您的顾虑之一,您可以默认延迟加载它们。

    【讨论】:

    • 谢谢。这是提供此类的外部模块,所以我无法重新设计。老实说,我也不使用注释 - 只是重写代码示例以获得更好的可读性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多