如何把一SQL 转换成 HQL

lishizhen2002 2009-03-31 09:45:23
sql如下:
select * from a where code = substring('abcdefghijklmn',1,len(code))

想把它搞成hql要怎么写,
谢谢。
...全文
430 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wysunning 2009-04-01
  • 打赏
  • 举报
回复
学习了
jerryForever 2009-03-31
  • 打赏
  • 举报
回复
String hql = "from a as a where a.code=substring('abcdefghijklmn',1,len(a.code))";
然后使用session.createQuery(hql)查询,就可以了吧。

注意字符串处理函数substring和len在不同数据库中名称不一样。
liang__ 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lishizhen2002 的回复:]
sql如下:
select * from a where code = substring('abcdefghijklmn',1,len(code))

那么substring('abcdefghijklmn',1,len(code)) 中的code 是对应表字段中code 的长度

而String s=substring('abcdefghijklmn',1,len(code))中的code 怎么和表字段code对应呢?
谢谢
[/Quote]
那你用这个多好。

[Quote=引用 6 楼 zhj92lxs 的回复:]
不会写的情况下
可以使session.createSQLQuery(sql);去执行标准的sql语句,在后面加上addEntity()方法可以转换成实体对象
[/Quote]
Study_Work_2009 2009-03-31
  • 打赏
  • 举报
回复
那就是实体类中的属性了
lishizhen2002 2009-03-31
  • 打赏
  • 举报
回复
sql如下:
select * from a where code = substring('abcdefghijklmn',1,len(code))

那么substring('abcdefghijklmn',1,len(code)) 中的code 是对应表字段中code 的长度

而String s=substring('abcdefghijklmn',1,len(code))中的code 怎么和表字段code对应呢?
谢谢
ben0759 2009-03-31
  • 打赏
  • 举报
回复
String s=substring('abcdefghijklmn',1,len(code)) ;
hql="from a where code="+s;

楼主说的code是变量是什么意思?变量也要之前知道他的长度啊。这样操作没问题啊
lishizhen2002 2009-03-31
  • 打赏
  • 举报
回复
各位,
可你们搞这个
substring('abcdefghijklmn',1,len(code)
code是个变量啊,
怎么办??
zhj92lxs 2009-03-31
  • 打赏
  • 举报
回复
不会写的情况下
可以使session.createSQLQuery(sql);去执行标准的sql语句,在后面加上addEntity()方法可以转换成实体对象
liu_zhaoqf 2009-03-31
  • 打赏
  • 举报
回复
1楼和3楼应该都是对的。
qiaozirue 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 huangan0301 的回复:]
Java codeString hql = "from a where code='"+substring('abcdefghijklmn',1,len(code))
+"'";
[/Quote]

同上.呵呵
jabeginner 2009-03-31
  • 打赏
  • 举报
回复
String hql = "select a from A as a where a.code=:code";(其中A为你的javaBean的名)

在qurey的时候再setString("code",substring('abcdefghijklmn',1,len(code)) 就可以啦
mumu_java 2009-03-31
  • 打赏
  • 举报
回复
hql是hibernate为了方面面向映射对象而设计的,最后一定还是要转成sql语句的。lz既然已经用sql很好的实现了,为什么不掉sql?解决问题才是关键,不要拘泥用什么实现。
huangan0301 2009-03-31
  • 打赏
  • 举报
回复
String hql = "from a where code='"+substring('abcdefghijklmn',1,len(code)) 
+"'";

81,106

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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