2 lpjhn41822 lpjhn41822 于 2016.02.16 09:07 提问

关于Hql语句,这条语句为什么查不出数据
hql

hql = "from A a where a.timeDate <= "+time+" and a.name not in (select b.name from B b)";
super.findTopByHql(hql, 20);
这条语句有没有问题啊,为什么查不到数据

5个回答

caozhy
caozhy   Ds   Rxr 2016.02.16 09:13

检查下日期有没有引号,是否合法

最好是使用参数
hql = "from A a where a.timeDate <= :time and a.name not in (select b.name from B b)";
String[] params = { "time" };
Object[] args = { time };
,,,

meng20166
meng20166   Rxr 2016.02.16 10:00

看下你的time数据类型和格式是否一致,然后在控制台打印出sql语句,在数据库执行一下,结果是否一样

meng20166
meng20166 改成这个试试,你的格式不对
接近 2 年之前 回复
meng20166
meng20166 hql = "from A a where a.timeDate <= '"+time+"' and a.name not in (select b.name from B b)";
接近 2 年之前 回复
meng20166
meng20166 在控制台能打印出sql?
接近 2 年之前 回复
lpjhn41822
lpjhn41822 time是String类型的,这条语句能在数据库执行,但是后台执行不了,查出来就没数据
接近 2 年之前 回复
lpjhn41822
lpjhn41822 time是String类型的,这条语句能在数据库执行,但是后台执行不了,查出来就没数据
接近 2 年之前 回复
Royal_lr
Royal_lr   Ds   Rxr 2016.02.16 11:15

后台不能执行,,数据库不能执行,,没这回事吧

u011067688
u011067688   2016.02.16 15:33

hql = "from A a where a.timeDate <= todate('"+time+",'yyyy-mm-dd hh:mi:ss') and a.name not in (select b.name from B b)";

diaoliwei2
diaoliwei2   Rxr 2016.02.17 11:14
 timeDate <= to_date('" + time + "','yyyy-MM-dd') 
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!