我在获取参数化JPA查询时遇到一些问题,以便在Google App Engine应用中返回正确的结果。
如果我用字符串文字构造查询,我得到我想要的结果:
Query query = entityManager.createQuery("select from DevInfo as DevInfo where DevInfo.timestamp = " + someTimeStamp);
List<DevInfo> foundDevInfo = query.getResultList();
但是如果使用JPA setParameter进行查询,我没有得到任何结果:
Query query = entityManager.createQuery("select from DevInfo as DevInfo where DevInfo.timestamp = :timestamp");
query.setParameter("timestamp", someTimeStamp);
List<DevInfo> foundDevInfo = query.getResultList();
我是否需要做些什么来启用此功能,或者我的查询可能有问题。在研究了一段时间的文档之后,我无法弄清楚这个问题。
我想使用后面的方法,因为我知道使用字符串文字会使我的代码容易受到注入攻击。
任何帮助表示赞赏。 感谢。