有关HQL的一个小问题,在此请教

最爱三明治 2014-10-30 08:10:39
假设 student 是 class 的一个子集
那么我想查询那个class的总分小于 1000的该怎么查?
分数名叫amount吧
用hql

from class c where sum(c.students.items.amout) < 1000这个不对,谢谢。
...全文
182 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
中琦 2014-10-31
  • 打赏
  • 举报
回复
[size=18px]from 类名 别名 where 条件 如果有涉及到各种对应关系的话,那么 from 类名 别名 where 条件(别名.属性名 < 1000 ) 这种方式
最爱三明治 2014-10-31
  • 打赏
  • 举报
回复

//BankNote 表
public class BankNote implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private Long id;//id,自增
	private SysUser createdUser;
	private Date createdDate;
	private Set<BankNoteSub> bankNoteSubs;
	//get和set方法就删掉了
}


public class BankNoteSub implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private Long id;//id
	private BankNote bankNote;
	private String amount;//金额

//删掉了get和set方法
	
}
简单说就是查询BankNote类集合,但是这个条件却是BankNoteSub的amount < 1000,其中BankNoteSub是BankNote的子类,感谢大家,希望大家踊跃积极讨论
Magical茏 2014-10-30
  • 打赏
  • 举报
回复
问这种问题 要是把建表语句 和类文件也贴出 这样 我们自己也好试试
最爱三明治 2014-10-30
  • 打赏
  • 举报
回复
from class c where sum(elements(b.students).amount) < 1000不对,请教!!!急!!!!最好不要用left join的形式,虽然这种形式能够实现,但是需要创建其他类单独存放这个对象,会增加基础架构的工作量,最好的方式还是直接使用HQL查询,返回的直接就是List集合包含的就是各个对象,请教各位大神。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧