每次新的Photo实体进入时,我都会使用Hibernate Search自动更新Lucene索引。当照片数据被保存或编辑时,它会很快自动地进入索引。但是,当添加评论时,它永远不会进入。而且它正是@IndexedEmbedded/@ContainedIn
应该做的,对吧?
我的代码大致如下:
@Indexed(index="/indexes/photo.index")
@Entity
public class Photo {
@IndexedEmbedded
@OneToMany(mappedBy="photo", fetch = FetchType.LAZY)
public List<Comment> comments;
}
@Indexed(index="indexes/comment.index")
@Entity
public class Comment {
@ContainedIn
@ManyToOne
public Photo photo;
@Field
public String text;
}
我正在使用以下lib版本:
hibernate-search-3.4.0.Final
lucene-core-3.6.0
lucene-analyzers-3.1.0
注意:对于那些马上跳过的人,说我搞砸了这两个注释的顺序,我会说我也尝试过相反的方式。不起作用。
答案 0 :(得分:0)
版本3.4.0.Final是第一个包括脏检查优化的版本,这在以后的版本中更稳定。你能尝试设置Hibernate配置属性
吗?hibernate.search.enable_dirty_check=false
确保此类优化不会影响您。
此外,使用此版本所针对的Lucene版本,或者您可能遇到任何问题:
lucene-core-3.1.0
lucene-analyzers-3.1.0