4

我与@OrderColumn 有一个@ManyToMany 映射,如下所示:

class Tag {
    @ManyToMany(fetch = FetchType.LAZY) @Getter
    @JoinTable(
            name = "tag_graph",
            inverseJoinColumns = @JoinColumn(name = "parent_id"))
    private Set<Tag> parents = new TreeSet<>();

    @ManyToMany(fetch = FetchType.LAZY, mappedBy = "parents") @Getter @OrderColumn
    private List<Tag> children = new ArrayList<>();
}

我的问题是我想编写一个使用生成的@JoinTable 的@OrderColumn 的JPQL 查询。就像是:

 SELECT t FROM Tag t WHERE ... ORDER BY t.ORDER_COLUMN

有没有办法做到这一点?

4

2 回答 2

5

您应该能够在 JPQL 中使用 INDEX 函数。

见, http ://en.wikibooks.org/wiki/Java_Persistence/JPQL#Special_Operators

于 2013-01-21T15:07:14.497 回答
-1

不需要在查询中指定 order 列,它会在后台自动使用以保留将元素添加到关系列表中的顺序。如需更好的解释,您可以参考此链接

于 2013-01-21T08:41:54.493 回答