1


@ElementCollection で @OrderBy をテストしていましたが、うまくいかないようです。要素コレクションを所有するエンティティを取得し、コレクションを印刷しますが、何も並べ替えません..

@Entity
public class AtAsOverride

@ElementCollection(fetch = FetchType.LAZY)
@Column(name = "Strings")
@OrderBy(value="stringuri desc") // tried everything: without any value, strings, stringuri ..
private List<String> stringuri;

Query qq = em.createQuery("Select a from AtAsOverride a");
System.out.println(AtAsOverride.class.cast(qq.getResultList().get(0)).getStringuri());
4

3 に答える 3

0

EclipseLinkの最近のバージョンでは、基本的なElementCollectionsで@OrderBy( "desc")および@OrderBy( "asc")が許可されています。以前は、これは無視されていました。

最新のリリースをお試しください。

于 2012-05-22T15:47:59.617 に答える
0

JPA仕様では、基本型(あなたが持っているもの)のElementCollectionの@OrderByは値を指定すべきではありません。つまり、次のようにする必要があります。

@ElementCollection(fetch = FetchType.LAZY)
@Column(name = "Strings")
@OrderBy
private List<String> stringuri;

これは、「順序付けは基本オブジェクトの値による」ことを示す必要があります。これは、セクション 11.1.38 で説明されています。

于 2012-05-22T19:38:47.117 に答える
0

プリミティブ型であるため、 @OrderBy("desc") または @OrderBy("asc") を使用してください。それはうまくいくはずです。

于 2012-05-22T15:58:18.020 に答える