订购目的是在托运领域吗

订购目的是在托运领域吗

我试图从数据库中检索元素的有序列表。据我了解,@orderBy注释应该足够了。

可以注释两个地方:

代表集合的字段

@OrderBy
@OneToMany(cascade = CascadeType.ALL, mappedBy = Entry.REPORT_PROP)
private List<Entry> elements


吸气剂

@OrderBy
public List<Entry> getElements()


问题介绍
如果对field和getter都进行了注释,则检索列表的顺序正确。但是,如果仅注释字段,则检索到的列表使用数据库自​​然顺序。

问题
仅注释字段有什么作用吗?如果没有,为什么只能注释字段呢?

最佳答案

放置注释的位置无关紧要。根据您的注释方式,应有以下三种情况:

@OneToMany(...)
private List<Entry> elements;


应该表示该列表的检索没有任何特定顺序(您的SQL数据库可能会以某种有序形式返回它们,但是根据标准,如果没有,则完全合法)。

@OrderBy
@OneToMany(...)
private List<Entry> elements;


应该检索按主键排序的条目,并且

@OrderBy("fieldname asc")
@OneToMany(...)
private List<Entry> elements;


应该按照以下JPQL语句检索按字段名升序排列的条目:

"select e from Entry e ordered by fieldname asc"

关于java - 订购目的是在托运领域吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9328659/

10-08 23:53