Java Hibernate Lucene搜索表联接

时间:2019-04-25 02:48:07

标签: java hibernate lucene

我在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

请帮助。谢谢。

0 个答案:

没有答案