1
我想索引一個一對多關聯使用@ IndexedEmbedded嵌入式集合(集)。問題是,我們只是軟刪除我們的應用程序中的記錄,我想要在索引集合上應用hibernate篩選器,以便在索引時排除邏輯刪除的記錄。休眠過濾器不工作,而索引通過休眠搜索
@Index
Class A {
@IndexedEmbedded
@OneToMany(targetEntity = B.class, fetch = FetchType.EAGER)
@Filter(name = "deletedRecordsFilter")
Set<B> setOfBs;
}
索引:
FullTextSession fts = getFullTextSession();
fts.createIndexer(entityClass)
.purgeAllOnStart(true)
.optimizeAfterPurge(true)
.optimizeOnFinish(true)
.batchSizeToLoadObjects(30)
.threadsForSubsequentFetching(8)
.threadsToLoadObjects(4)
.threadsForIndexWriter(3)
.startAndWait();
我已經啓用使用session.enableFilter( 「deletedFilterRecords」)的過濾器。數據已編入索引,但過濾器工作不正常。嵌入的集合仍包含已刪除的記錄。
是hibernate篩選器不工作,而通過hibernate搜索索引或我缺少的東西嗎? 如果過濾器在索引時不起作用,那麼有什麼辦法可以避免爲邏輯刪除的記錄建立索引?