ManyToMany OrderBy
有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的更多相关文章
- jpa注解
http://www.oracle.com/technetwork/cn/middleware/ias/toplink-jpa-annotations-100895-zhs.html#ManyToOn ...
- eclipse中hibernate和mybatis中xml配置文件的没有标签提醒解决方法
当我们使用eclipse编写Mybatis或hibernate的xml文件时,面对众多标签的配置文件,却没有自动提醒,对于工作和学习都十分不方便. 之所以没有自动提醒,是因为dtd文件没有加载成功. ...
- hibernate学习(一)配置,导包
框架的作用 学过javaWeb基础的已经对web层 jsp servlet ,service 层 ,dao层的jdbc .DBUtils 有了很深的了解 并编写代码实现某种功能 为了提高开发 ...
- Hibernate4之JPA规范配置详解
@Table Table用来定义entity主表的name,catalog,schema等属性. 属性说明: name:表名 catalog:对应关系数据库中的catalog schema:对应关系数 ...
- Spring Boot学习随记
由于早年在管理领域耕耘了一段时间,完美错过了Spring的活跃期, 多少对这个经典的技术带有一种遗憾的心态在里面的, 从下面的我的生涯手绘图中大概可以看出来我的经历. 最近由于新介入到了工业数字化领域 ...
- Hibernate的dtd文件和properties文件
hibernate-configuration-3.0.dtd <!-- Hibernate file-based configuration document. <!DOCTYPE hi ...
- 017 多对多关联映射 双向(many-to-many)
多对多关联映射 双向 两方都持有对象引用,修改对象模型,但数据的存储没有变化. 再修改映射文件: public class Role { private int id; private String ...
- EntityFramework 7 OrderBy Skip Take-计算排序分页 SQL 翻译
先解释一下这个标题的意思,OrderBy 在 Linq 语句中,我们经常使用,比如 OrderBy(b => b.BlogId) 就是对 BlogId 字段进行升序排序,这是针对一个字段的排序, ...
- 【记录】AutoMapper Project To OrderBy Skip Take 正确写法
AutoMapper:Queryable Extensions 示例代码: using (var context = new orderEntities()) { return context.Ord ...
随机推荐
- Java Web学习笔记--JSP for循环
JSP for循环 <%@ page language="java" contentType="text/html; charset=UTF-8" %&g ...
- 【01背包】HDU 2602 Bone Collector (模板题)
Problem Description Many years ago , in Teddy's hometown there was a man who was called "Bone C ...
- iOS -不同模拟器字体适配
1.先建立一个UILabel的分类 导入#import <objc/runtime.h>头文件 2.在.m文件中写入如下代码 //不同设备的屏幕比例(当然倍数可以自己控制) #define ...
- Linux学习-文件和目录管理
Linux文件和目录管理 文件系统架构 1.Linux文件系统具有层级性 1)文件或者目录起始于根目录"/"成为树状结构 2)最顶层由/开始 2 ...
- MySQL对NULL值的处理
mysql: 我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. 为了处理这种情况,M ...
- Egret --视觉编程,显示对象,事件
1,在egret中,视觉图形都是由显示对象和显示对象容器组成的: 显示对象:准确的说,就是在舞台上显示出来的,包括能真实看见的图形,文字,图片,视频等:也包括不能看见但真实存在的显示对象容器: 一:显 ...
- Chapter 21_3 模式
很多地方都会看到各种匹配模式,每次接触这些函数,颇使人望文生畏. 今天就来好好面对它.认识它.了解它.最后战胜它. 匹配模式都是用一串常规的字符串来描述,最主要的是理解这些字符串的语法及含义(即它能匹 ...
- (转载)html中div使用自动高度
为什么要使用div标签 1.更多的配置项,那就意味着更灵活,当然,难度也更高: 2.可以方便的容纳其他html标签: static定位就是不定位,出现在哪里就显示在哪里,这是默认取值,只有在你 ...
- VR应用向导,全球Top10 VR应用排行榜
2016年国际知名产商索尼.三星.HTC.Oculus.YouTube等等都推出了自己的VR设备,与此同时还有自有的VR应用平台,供各位玩家下载应用体验沉浸式VR,当然每个平台的VR应用下载量各不相同 ...
- java实现的快速排序算法
快速排序的原理:选择一个关键值作为基准值.比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的).一般选择序列的第一个元素. 一次循环:从后往前比较,用基准值和最后一个值比较, ...