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

クエリで順序列を指定する必要はありません。要素が関係リストに追加された順序を保持するために、舞台裏で自動的に使用されます。より良い説明については、このリンクを参照してください。

于 2013-01-21T08:41:54.493 に答える