无法在 Search 5.5 中猜测 FieldBridge。未索引字段
Unable to guess FieldBridge in Search 5.5. Unindexed Fields
版本:
- 休眠核心: 5.2.5.Final
- 休眠搜索: 5.5.5.Final
具有以下映射:
@Indexed
@Entity
@Table(name = "scanresult")
public class ScanResult
{
@Id
private ScanResultKey id;
@Field
@Column(name = "name")
private String name;
}
@Embeddable
public class ScanResultKey implements Serializable
{
@ManyToOne
@JoinColumn(name = "eA", referencedColumnName = "id")
private EntityA entA;
//others...
}
我在之前的帖子中了解到,这是 Search 4.4
中的一个问题(当具有复合 ID 和外国关系时),但这应该在 5.5
中得到解决。所以显然这是我的错。但是我不知道我做错了什么
异常:
org.hibernate.search.exception.SearchException: HSEARCH000135: Unable to guess FieldBridge for id in entities.keys.ScanResultKey
注意:我只需要一个字段(name
)被索引
你能指出我做错了什么吗?
好的,由于这个问题在 none 附近引起了人们的兴趣,根据浏览量,这里简要介绍了我(希望)解决问题的方法(如果您了解更多,请指正)
- 验证模块的版本兼容性
根据 SO 问题中的一位评论者的说法,并非所有(甚至最新的)版本都相互兼容。例如:
Hibernate Search 5.5 works with Hibernate ORM 5.0.x and 5.1.x (NOT
with 5.2.x), and with Apache Lucene 5.3.x, 5.4.x and 5.5.x (Not 6.0)
声明者:Sanne
这不是解决此特定问题的方法,但可能会避免其他问题
创建一个 FieldBridge
用于复合键实现
TwoWayFieldBridge
public class ScanResultBridge 实现 TwoWayFieldBridge
给Entity添加注解Class,指定Bridge的实现
@FieldBridge(impl = ScanResultBridge.class)
私有 ScanResultKey id;
版本:
- 休眠核心: 5.2.5.Final
- 休眠搜索: 5.5.5.Final
具有以下映射:
@Indexed
@Entity
@Table(name = "scanresult")
public class ScanResult
{
@Id
private ScanResultKey id;
@Field
@Column(name = "name")
private String name;
}
@Embeddable
public class ScanResultKey implements Serializable
{
@ManyToOne
@JoinColumn(name = "eA", referencedColumnName = "id")
private EntityA entA;
//others...
}
我在之前的帖子中了解到,这是 Search 4.4
中的一个问题(当具有复合 ID 和外国关系时),但这应该在 5.5
中得到解决。所以显然这是我的错。但是我不知道我做错了什么
异常:
org.hibernate.search.exception.SearchException: HSEARCH000135: Unable to guess FieldBridge for id in entities.keys.ScanResultKey
注意:我只需要一个字段(name
)被索引
你能指出我做错了什么吗?
好的,由于这个问题在 none 附近引起了人们的兴趣,根据浏览量,这里简要介绍了我(希望)解决问题的方法(如果您了解更多,请指正)
- 验证模块的版本兼容性
根据
Hibernate Search 5.5 works with Hibernate ORM 5.0.x and 5.1.x (NOT with 5.2.x), and with Apache Lucene 5.3.x, 5.4.x and 5.5.x (Not 6.0)
声明者:Sanne
这不是解决此特定问题的方法,但可能会避免其他问题
创建一个
FieldBridge
用于复合键实现TwoWayFieldBridge
public class ScanResultBridge 实现 TwoWayFieldBridge
给Entity添加注解Class,指定Bridge的实现
@FieldBridge(impl = ScanResultBridge.class) 私有 ScanResultKey id;