有A、B表和A_B中间表,A_B中间表只有A、B表的id,想让A中的bs以date列排序:

@Entity
@Table(name="A")
public class A implements java.io.Serializable { private Set<B> bs = new HashSet<B>(0); @ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="A_B", joinColumns = {
@JoinColumn(name="a_id", nullable=false, updatable=false) }, inverseJoinColumns = {
@JoinColumn(name="b_id", nullable=false, updatable=false) })
@OrderBy(clause = "date desc")
public Set<B> getBs() {
return this.bs;
}
} @Entity
@Table(name="B")
public class B implements java.io.Serializable { @Column(name="date", nullable=false, length=29)
private Date date; /* setters and getters */
}

以上代码中的@OrderBy是org.hibernate.annotations.OrderBy,如果使用A_B中间表中没有的列进行排序会出错,改成javax.persistence.OrderBy的@OrderBy就行了:

@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="A_B", joinColumns = {
@JoinColumn(name="a_id", nullable=false, updatable=false) }, inverseJoinColumns = {
@JoinColumn(name="b_id", nullable=false, updatable=false) })
@javax.persistence.OrderBy(value = "date desc")
public Set<B> getBs() {
return this.bs;
}

org.hibernate.annotations.OrderBy把clause中的列名(date)当作是A_B表的列名,而javax.persistence.OrderBy把value中的列名(date)当作B表列名。

另:@OrderBy是在内存中排序,在db中不见得是有序的,@OrderColumn是数据在db中就是有序的

ManyToMany OrderBy的更多相关文章

  1. jpa注解

    http://www.oracle.com/technetwork/cn/middleware/ias/toplink-jpa-annotations-100895-zhs.html#ManyToOn ...

  2. eclipse中hibernate和mybatis中xml配置文件的没有标签提醒解决方法

    当我们使用eclipse编写Mybatis或hibernate的xml文件时,面对众多标签的配置文件,却没有自动提醒,对于工作和学习都十分不方便. 之所以没有自动提醒,是因为dtd文件没有加载成功. ...

  3. hibernate学习(一)配置,导包

    框架的作用 学过javaWeb基础的已经对web层 jsp  servlet   ,service  层  ,dao层的jdbc .DBUtils 有了很深的了解 并编写代码实现某种功能 为了提高开发 ...

  4. Hibernate4之JPA规范配置详解

    @Table Table用来定义entity主表的name,catalog,schema等属性. 属性说明: name:表名 catalog:对应关系数据库中的catalog schema:对应关系数 ...

  5. Spring Boot学习随记

    由于早年在管理领域耕耘了一段时间,完美错过了Spring的活跃期, 多少对这个经典的技术带有一种遗憾的心态在里面的, 从下面的我的生涯手绘图中大概可以看出来我的经历. 最近由于新介入到了工业数字化领域 ...

  6. Hibernate的dtd文件和properties文件

    hibernate-configuration-3.0.dtd <!-- Hibernate file-based configuration document. <!DOCTYPE hi ...

  7. 017 多对多关联映射 双向(many-to-many)

    多对多关联映射 双向 两方都持有对象引用,修改对象模型,但数据的存储没有变化. 再修改映射文件: public class Role { private int id; private String ...

  8. EntityFramework 7 OrderBy Skip Take-计算排序分页 SQL 翻译

    先解释一下这个标题的意思,OrderBy 在 Linq 语句中,我们经常使用,比如 OrderBy(b => b.BlogId) 就是对 BlogId 字段进行升序排序,这是针对一个字段的排序, ...

  9. 【记录】AutoMapper Project To OrderBy Skip Take 正确写法

    AutoMapper:Queryable Extensions 示例代码: using (var context = new orderEntities()) { return context.Ord ...

随机推荐

  1. Python datetime模块的datetime类

    datetime模块定义了下面这几个类: datetime.date:表示日期的类.常用的属性有year, month, day. datetime.time:表示时间的类.常用的属性有hour, m ...

  2. C基于客户端的通信实例

    运行环境liunx 需求:客户端对服务器发送一个TCP连接,连接成功之后发送数据并接收返回数据 代码如下: #include <sys/socket.h> #include <net ...

  3. Maven之(九)依赖关系

    在maven的管理体系中,各个项目组成了一个复杂的关系网,但是每个项目都是平等的,是个没有贵贱高低,众生平等的世界,全球每个项目从理论上来说都可以相互依赖.就是说,你跟开发spring的大牛们平起平坐 ...

  4. (Nginx学习一)安装和启动及对应文件夹介绍

    nginx 安装和启动及对应文件夹介绍 1 安装 官网下载nginx文件  http://nginx.org/en/download.html 解压即可 2 文件夹介绍 在解压后nginx压缩包后发现 ...

  5. c语言编程实例——小球跳动

    1.预备知识 1.1 相关头文件 "#include"是c语言中用以申明所需调用的库函数或自定义函数的头文件路径及文件名.#include ""和#includ ...

  6. noip 2016 提高组总结(不是题解)

    小弱鸡杨树辰是第一次参加像noip这样的高大上的比赛,于是他非常,非常,非常激动. 当他第二天考完试后,他正在yy自己的分数:day1T1应该是a掉了,T2写了个30分的暴力,T3也是个40分的暴力, ...

  7. Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8

    1,Project Structure里确认两个地方:Project sdk以及project language level 2,Project Structure->Modules里Sourc ...

  8. 【优先队列】-HDU4546比赛难度

    比赛难度 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submis ...

  9. OpenGL编译问题随手记

    1.error C2381: "exit" : 重定义:__declspec(noreturn) 不同 编译OpenGL   Red   Book   的例子时出现错误, stdl ...

  10. 利用java实现抽奖转盘(着重安全控制)

    本文是针对jquery 实现抽奖转盘作者的一个补充(主要用java去实现转盘结果生成及存储,解决jquery 做法 非法用户采用模拟器实现改变转盘值的风险性),针对jQuery的具体实现,请看案例:h ...