我想搜索這兩個不同的變數:
@Enumerated(EnumType.STRING)
@Column(length = 20)
@Convert(converter = WorksEnumConverter.class)
@GenericField(valueBridge = @ValueBridgeRef(type = WorksValueBridge.class))
private WorksEnum works;
@Convert(converter = AcquisitionTypeConverter.class)
@Enumerated(EnumType.STRING)
@Column(length = 10)
@GenericField(valueBridge = @ValueBridgeRef(type = AcquisitionTypeBridge.class))
private AcquisitionTypeEnum acquisitionType;
如您所見,有兩種型別的 Enum ,我想使用休眠搜索通過多個關鍵字進行搜索,我使用了橋接器和轉換器,但我總是收到無法將字串轉換為列舉的錯誤這是我的休眠搜索實作代碼:
if (requestSearchCustomer.getKeyword() != null) {
final String[] keywords = requestSearchCustomer.getKeyword().split(",");
final SearchPredicate keywordPredicate = getSearchScope().predicate().terms()
.fields(RequestDB_.WORKS, RequestDB_.ACQUISITION_TYPE)
.matchingAny(keywords).toPredicate();
predicate.must(keywordPredicate);
}
uj5u.com熱心網友回復:
如果你想傳遞字串,而不是 Hibernate Search 期望的列舉型別,你需要禁用 Hibernate Search 的自動轉換:
if (requestSearchCustomer.getKeyword() != null) {
final String[] keywords = requestSearchCustomer.getKeyword().split(",");
final SearchPredicate keywordPredicate = getSearchScope().predicate().terms()
.fields(RequestDB_.WORKS, RequestDB_.ACQUISITION_TYPE)
.matchingAny(Arrays.asList(keywords), ValueConvert.NO).toPredicate();
predicate.must(keywordPredicate);
}
請參閱https://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#search-dsl-argument-type
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/461310.html
上一篇:JPA獲取外鍵而不加載相關記錄
下一篇:VBA保存二進制
