JPQL 查询中的 @OrderColumn

Voj*_*ěch 4 many-to-many jpa join jpql

我有@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<>();
}
Run Code Online (Sandbox Code Playgroud)

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

 SELECT t FROM Tag t WHERE ... ORDER BY t.ORDER_COLUMN
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

Jam*_*mes 5

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

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