我正在使用@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());
答案 0 :(得分:0)
EclipseLink的最新版本允许@OrderBy(&#34; desc&#34;)和@OrderBy(&#34; asc&#34;)在基本ElementCollections上。 以前这会被忽略。
试试最新版本。
答案 1 :(得分:0)
只需使用@OrderBy(“desc”)或@OrderBy(“asc”),因为它是原始类型。它应该工作。
答案 2 :(得分:0)
根据JPA规范,@ OrderBy对基本类型的ElementCollection(你拥有的)不应该指定任何值。意思是,它应该只是:
@ElementCollection(fetch = FetchType.LAZY)
@Column(name = "Strings")
@OrderBy
private List<String> stringuri;
应该表明“按照基本对象的值排序”。这将在第11.1.38节中介绍