我在Lucene中使用Hibernate Search。我想在表联接中搜索文本。我有一个用户表:
@Entity
@Table(name = "user_user")
@Data
@EqualsAndHashCode(callSuper=false)
@Indexed
@Where(clause = "is_delete <> 'Y'")
public class User extends CommonColumn {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private long id;
@ManyToOne(fetch = FetchType.EAGER)
@Field(termVector = TermVector.YES)
@JoinColumn(name = "fk_department")
@JsonBackReference
UserDepartment userDepartments = new UserDepartment();
}
和我的UserDepartment
@Entity
@Table(name="user_department")
@Data
public class UserDepartment {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private long id;
@Column(name="department_name")
private String departmentName;
@OneToMany(mappedBy = "userDepartments")
@JsonManagedReference
private List<User> users = new ArrayList<User>();
}
以及我的服务
org.apache.lucene.search.Query query = queryBuilder
.keyword()
.wildcard()
.onFields("fullName", "email", "mobileNumber", "isActive", "userDepartments")
.matching(queryString + "*")
.createQuery();
但是我遇到一个错误:
Unable to build Hibernate SessionFactory; nested exception is org.hibernate.search.exception.SearchException: HSEARCH000135: Unable to guess FieldBridge for userDepartments in com.company.models.UserDepartment
请帮助。谢谢。