Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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 App Engine JPA setParameter工作不正常_Java_Google App Engine_Jpa_Persistence_Jpql - Fatal编程技术网

Java App Engine JPA setParameter工作不正常

Java App Engine JPA setParameter工作不正常,java,google-app-engine,jpa,persistence,jpql,Java,Google App Engine,Jpa,Persistence,Jpql,我在获取参数化JPA查询以在Google应用程序引擎应用程序中返回正确结果时遇到一些问题 如果使用字符串文本构造查询,则会得到所需的结果: Query query = entityManager.createQuery("select from DevInfo as DevInfo where DevInfo.timestamp = " + someTimeStamp); List<DevInfo> foundDevInfo = query.getResultList(); 但如果

我在获取参数化JPA查询以在Google应用程序引擎应用程序中返回正确结果时遇到一些问题

如果使用字符串文本构造查询,则会得到所需的结果:

Query query = entityManager.createQuery("select from DevInfo as DevInfo where DevInfo.timestamp = " + someTimeStamp);
List<DevInfo> foundDevInfo = query.getResultList();
但如果使用JPAs setParameter进行查询,则不会得到任何结果:

Query query = entityManager.createQuery("select from DevInfo as DevInfo where DevInfo.timestamp = :timestamp");
query.setParameter("timestamp", someTimeStamp);
List<DevInfo> foundDevInfo = query.getResultList();
我需要做些什么才能启用此功能,或者我的查询可能有问题。在研究了一段时间的文档之后,我无法理解这个问题

我想使用后面的方法,因为我知道使用字符串文字会使代码容易受到注入攻击

谢谢你的帮助。
谢谢。

您对query.setParametertimestamp、someTimeStamp、TemporalType.TIMESTAMP;有相同的问题吗;?那里正在使用非法的JPQL。。。从实体别名中选择别名…我应该注意,本例中的时间戳只是一个字符串,因此我不确定是否需要时间类型。@DataNucleus将查询更改为建议的合法版本后:从DevInfo di中选择di,其中di.timestamp=:timestamp I仍然具有相同的结果。它适用于字符串文本,但不适用于set参数。