@IndexedEmbedded逻辑关系

时间:2013-05-16 10:13:26

标签: hibernate hibernate-search

我有两个表(外部,所以我不能修改它)。表具有逻辑关系(一个具有其他参考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;
}

1 个答案:

答案 0 :(得分:1)

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

你为什么不做这种真正的联想。如果您担心这一点,可以在默认情况下延迟加载它们。