Hibernate 搜索 - 匹配空日期字段
Hibernate search - match null date field
我想执行查询以获取 endDate 为 null 的实体,为此我使用 indexNullAs,因为 null 值未编入索引
@Field(analyze = Analyze.NO, indexNullAs = Field.DEFAULT_NULL_TOKEN)
@DateBridge(resolution = Resolution.DAY)
private Date endDate;
但我有以下错误
HSEARCH000325: The 'indexNullAs' property for field 'endDate', with
value 'null', has invalid format: HSEARCH000293: The 'indexNullAs'
property for fields indexed as Longs must represent a Long number.
Could not parse 'null'.
错误的意思差不多。在内部,日期被索引为 long
数字,因此您的空标记也必须是 long
。
只需选择一个不会与有效日期表示冲突的 long
值,例如 9223372036854775807
(最大 long
值)。
或者,如果您的项目(还)不是太大,您也可以迁移到 Hibernate Search 6 (in beta, but well tested and approaching the final release). Among many improvements, Hibernate Search 6 has an exists
predicate,从而不需要“空令牌”。
我想执行查询以获取 endDate 为 null 的实体,为此我使用 indexNullAs,因为 null 值未编入索引
@Field(analyze = Analyze.NO, indexNullAs = Field.DEFAULT_NULL_TOKEN)
@DateBridge(resolution = Resolution.DAY)
private Date endDate;
但我有以下错误
HSEARCH000325: The 'indexNullAs' property for field 'endDate', with value 'null', has invalid format: HSEARCH000293: The 'indexNullAs' property for fields indexed as Longs must represent a Long number. Could not parse 'null'.
错误的意思差不多。在内部,日期被索引为 long
数字,因此您的空标记也必须是 long
。
只需选择一个不会与有效日期表示冲突的 long
值,例如 9223372036854775807
(最大 long
值)。
或者,如果您的项目(还)不是太大,您也可以迁移到 Hibernate Search 6 (in beta, but well tested and approaching the final release). Among many improvements, Hibernate Search 6 has an exists
predicate,从而不需要“空令牌”。