Hibernate Search 4.1 CR1 了,这个版本应该是 4.1 正式版之前的最后一个版本。
主要的改进是支持拦截索引操作和更改,同时引入一个我们在术语上称为“软删除”的特性。
示例代码:
/**
* Only index blog when it is in published state
* @author Emmanuel Bernard
*/
public class IndexWhenPublishedInterceptor implements EntityIndexingInterceptor {
@Override
public IndexingOverride onAdd(Blog entity) {
if (entity.getStatus() == BlogStatus.PUBLISHED) {
return IndexingOverride.APPLY_DEFAULT;
}
return IndexingOverride.SKIP;
}
@Override
public IndexingOverride onUpdate(Blog entity) {
if (entity.getStatus() == BlogStatus.PUBLISHED) {
return IndexingOverride.UPDATE;
}
return IndexingOverride.REMOVE;
}
@Override
public IndexingOverride onDelete(Blog entity) {
return IndexingOverride.APPLY_DEFAULT;
}
@Override
public IndexingOverride onCollectionUpdate(Blog entity) {
return onUpdate(entity);
}
}
view sourceprint?
@Entity
@Indexed(interceptor=IndexWhenPublishedInterceptor.class)
public class Blog {
@Id
@GeneratedValue
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
private Integer id;
@Field
public String getTitle() { return title; }
public void setTitle(String title) { this.title = title; }
private String title;
public BlogStatus getStatus() { return status; }
public void setStatus(BlogStatus status) { this.status = status; }
private BlogStatus status;
[...]
}
发行说明:http://in.relation.to/Bloggers/HibernateSearch41CR1SoftDeletes
暂无更多评论