【发布时间】:2019-09-01 06:40:57
【问题描述】:
我有一个实体类,它具有自引用关系 b/w ID(主键)和 PARENT_ID。
@Entity
@Table(name = "DIRECTORY")
public class DirectoryEntity{
@Id
@Column(name = "ID")
private Integer id;
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "PARENT_ID", nullable = true)
private Set<DirectoryEntity> children;
}
当我获取将子记录映射到子数组的记录时,一切正常。但是我遇到了以下问题。
SELECT
dqlist.*,
score(1) AS rank
FROM
DIRECTORY dqlist
WHERE
contains(dqlist.ESTABLISHMENT_NAME_EN,'definescore(fuzzy("SEARCH_TEXT", 1, 6, weight),relevance)',1) > 0 )
ORDER BY
rank DESC
这个查询获取所有满足搜索条件的记录。在我的情况下,我只想要那些满足搜索条件的子记录,但在这里我也得到了那些不遵循它们正在显示的条件的子记录,因为它们有一个确实遵循这个搜索条件的父记录的引用。有什么方法可以只显示那些符合搜索条件的子记录?
【问题讨论】:
-
添加
PARENT_ID is not null将导致仅获取属于某个父级的子级的记录。我认为这应该可以解决您的问题?
标签: java spring oracle hibernate jpa