hibernate条件按联接表字段查询顺序
我使用mysql数据库,有两个表hibernate条件按联接表字段查询顺序,hibernate,sql-order-by,hibernate-criteria,jointable,Hibernate,Sql Order By,Hibernate Criteria,Jointable,我使用mysql数据库,有两个表chapter和chapter\u title\u 1,在表chapter\u title\u 1中有一个fkchapter\u id 两个实体类是章实体。类参考表章和章标题1实体。类参考表章标题1。在章实体.class中有一个列表章标题1实体列表,用@OneToMany注释。我想得到一个按chapterenty.sequenceasc排序的chapterenty列表,以及一个按chaptertlenty.sequence排序的chaptertlenty的每个项
chapter
和chapter\u title\u 1
,在表chapter\u title\u 1
中有一个fkchapter\u id
两个实体类是章实体。类参考表章和章标题1实体。类参考表章标题1
。在章实体.class
中有一个列表章标题1实体列表
,用@OneToMany
注释。我想得到一个按chapterenty.sequence
asc排序的chapterenty
列表,以及一个按chaptertlenty.sequence
排序的chaptertlenty
的每个项目中的chaptertlenty
列表
在ADO层中,我使用条件查询数据库。我使用以下代码获取列表:
Criteria criteria = session().createCriteria(ChapterEntity.class, "chapter");
criteria.createAlias("chapter.chapterTitle1EntityList", "title1List");
criteria.addOrder(Order.asc("chapter.sequence")).
addOrder(Order.desc("title1List.sequence"));
List<ChapterEntity> chapterEntityList = criteria.list();
return chapterEntityList;
Criteria=session().createCriteria(chapterenty.class,“chapter”);
标准.createAlias(“第章、第章标题1实体列表”、“标题1列表”);
criteria.addOrder(Order.asc(“chapter.sequence”))。
addOrder(Order.desc(“title1List.sequence”);
List chapterEntityList=条件。List();
返回chapterEntityList;
但无论是addOrder(Order.desc(“title1List.sequence”)
还是addOrder(Order.asc(“title1List.sequence”)
,列表章节title1entity
的顺序都保持不变。您可以简单地执行以下操作:
ChapterEntity.class
@OneToMany(fetch=FetchType.EAGER , mappedBy="ChapterEntity")
@OrderBy("sequence Desc")
List<ChapterTitle1Entity> chapterTitle1EntityList;
chapterenty.class
@OneToMany(fetch=FetchType.EAGER,mappedBy=“chapterenty”)
@OrderBy(“序列描述”)
列表章节标题1实体列表;
但该代码将成为列表的全局代码。您只需执行以下操作:
ChapterEntity.class
@OneToMany(fetch=FetchType.EAGER , mappedBy="ChapterEntity")
@OrderBy("sequence Desc")
List<ChapterTitle1Entity> chapterTitle1EntityList;
chapterenty.class
@OneToMany(fetch=FetchType.EAGER,mappedBy=“chapterenty”)
@OrderBy(“序列描述”)
列表章节标题1实体列表;
但是对于列表,代码将变得全局化。非常感谢,但令人尴尬的是,我有时也希望它按顺序asc排序,所以我使用hibernate条件来查询我的数据库。是的,如果您使用给定的条件,它将起作用。现在您不需要创建任何别名,只需使用order.as简单的条件即可对不起,不管我使用的是Order.desc(“title1List.sequence”)
还是Order.asc(“title1List.sequence”)
,结果保持不变。它不起作用。非常感谢,但令人尴尬的是,我有时也希望它按顺序asc
排序,所以我使用hibernate条件来查询我的数据库。是的,如果您使用给定的条件,它将起作用。现在您不需要创建任何别名,只需使用order.as简单的条件即可对不起,无论我使用Order.desc(“title1List.sequence”)
还是Order.asc(“title1List.sequence”)
,结果都是一样的,不起作用。