Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
hibernate条件按联接表字段查询顺序_Hibernate_Sql Order By_Hibernate Criteria_Jointable - Fatal编程技术网

hibernate条件按联接表字段查询顺序

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的每个项

我使用mysql数据库,有两个表
chapter
chapter\u title\u 1
,在表
chapter\u title\u 1
中有一个fk
chapter\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”)
,结果都是一样的,不起作用。