Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将日期类型传递给CreateSQLQuery_Java_Oracle_Hibernate - Fatal编程技术网

Java 如何将日期类型传递给CreateSQLQuery

Java 如何将日期类型传递给CreateSQLQuery,java,oracle,hibernate,Java,Oracle,Hibernate,您好,我正在使用Java中的hibernate。我在排序表中保存一行,然后我想更新它。所以我使用这个代码: s.beginTransaction(); s.save(ordered[i]); s.getTransaction().commit(); s.beginTransaction(); SOrder so = (SOrder) s.createSQLQuery("select * from SOrder where Created_Time=?") .add

您好,我正在使用Java中的hibernate。我
在排序表中保存一行,然后我想更新它。所以我使用这个代码:

s.beginTransaction();
s.save(ordered[i]);
s.getTransaction().commit();
s.beginTransaction();
SOrder so = (SOrder) s.createSQLQuery("select * from SOrder where Created_Time=?")
                .addEntity(SOrder.class)
                .setParameter(0, ordered[i].Created_Time)
                .uniqueResult();
so.Pay_Status="Payed";
so.Response_Code="00";
s.update(so);
s.getTransaction().commit();
save
方法工作正常,但当我
Select*
null返回到
so
,但创建的时间正是以前保存的时间。
是否有特殊方法将日期传递给CreateSQLQuery?

如果使用
=
运算符,
参数日期必须与日期表单DB完全相同。我认为,在
JPQL
hql
中为日期参数使用
=
运算符就像是一种风险。 我建议使用
>
Bdate=>Adate在Bdate之前
其中AdateAdate在Bdate之后
其中Cdate在Adate和Bdate之间=>Cdate在Adate和Bdate之间

是的,我希望它们完全相同,我保存了创建时间本身,它没有理由返回null。谢谢你的回答,但是我改变了解决方案,我不再需要它了。
WHERE Adate > Bdate                     => Adate is before Bdate
WHERE Adate < Bdate                     => Adate is after Bdate
WHERE Cdate BETWEEN Adate AND Bdate     => Cdate is between Adate and Bdate