我有这个查询和一个oracle DB。当我尝试执行它时,我从未收到过DB的回答。编辑:查询返回0行。我知道这是针对Date的,因为如果我使用TO_CHAR与Toad相同的查询,这是有效的。我如何添加Java代码TO_CHAR函数?谢谢。
public List<PrivacySospensiva> getAllByCf(String cf,Long idsuperpratica,String stato,Date dataCensimento){
TypedQuery<PrivacySospensiva> query = entityManager.createQuery("select u from PrivacySospensiva u where u.id_superpratica = :idSuperpratica AND u.stato = :stato AND u.cf = :cf AND u.data_censimento = :dataCensimento", PrivacySospensiva.class);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH24:mm:SS");
sdf.format(dataCensimento);
query.setParameter("idSuperpratica", idsuperpratica);
query.setParameter("stato",stato);
query.setParameter("cf",cf);
query.setParameter("dataCensimento",dataCensimento);
List<PrivacySospensiva> result = query.getResultList();
return result;
}
答案 0 :(得分:0)
日期格式错误,应为yyyy-MM-dd HH:mm:ss
(0-23小时)或yyyy-MM-dd kk:mm:ss
(1-24小时)。 SS将是微秒。
幸运的是,代码不使用它;都可能是一个实验。人们需要这样做:
String t = sdf.format(dataCensimento);
query.setParameter("dataCensimento", t);
(sdf.format
不会改变dataCensimento
。)