您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> 请教大家一个HQL的问题

请教大家一个HQL的问题

来源:网络整理     时间:2016/7/30 19:51:59     关键词:

关于网友提出的“ 请教大家一个HQL的问题”问题疑问,本网通过在网上对“ 请教大家一个HQL的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 请教大家一个HQL的问题
描述:

需要用HQL语法完成:
ID SEQ DEPT
1901 010 401
1902 020 280
1903 030 402
1904 040 402
1905 050 402
1906 060 402
1907 070 280
1908 080 411
1909 090 280
该表mes_fo是根据seq排序,
获得一个ID,如1907,通过该ID找到对应的dept 280,通过dept向上找相等280,查询出两个280之间的数据,包括ID为1907的数据,根据seq排序。
得到的结果是
  1903 030 402
1904 040 402
1905 050 402
1906 060 402
1907 070 280


解决方案1:


第一步:查找获得一个ID,如1907,通过该ID找到对应的dept 280
第二步:用HQL查找dept 280 并且 ID<1907的ID号
第三步:用HQL查找ID>=第二步的ID,并且ID<>

解决方案2:

List ts = from Object ob where ob.id = 280;
设这 index = 0;
找出Id 所在对象的Index 
index - 1 就是上一个相同dept的记录 例如Id = id1
原来的id是id
List from Object ob where ob.id between id and id1;
把这些代码放在一个事务中
这段代码效率不高但是可以解决你的问题
希望对你有帮助

解决方案3:

引用 4 楼 iceblue22 的回复:
诶,SQL好不容易写好了,结果套到HQL发现不好使
悲剧

HQL 写复杂的查询 例如多表联合是会很悲剧 大家一般都是用SQL查询后将结果集封装成对象
以上介绍了“ 请教大家一个HQL的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3030351.html

相关图片

相关文章