如何在java中使用JPA Prepared语句进行插入查询

时间:2014-12-12 14:42:13

标签: java jpa playframework-2.0 prepared-statement insert-query

我想知道如何使用预准备语句进行插入查询。通常对于我使用以下方式的选择查询。

Query query = JPA.em()
    .createNativeQuery("select item_status from item_details where box_id=:boxnumber");
query.setParameter("boxnumber", boxNumber);

但是当我使用插入查询时,我无法以上述方式使用。

Query query = JPA.em()
    .createNativeQuery("insert into item_details values(':item_status')");
query.setParameter("item_status", itemstat);

我收到错误

java.lang.IllegalArgumentException: 
    org.hibernate.QueryParameterException: could not locate named parameter [item_status]
    at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:368) ~[hibernate-entitymanager-3.6.9.Final.jar:3.6.9.Final]
    at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:72) ~[hibernate-entitymanager-3.6.9.Final.jar:3.6.9.Final]

请任何人帮我解决这个问题。提前致谢

1 个答案:

答案 0 :(得分:1)

我无法测试,但你能试试吗;

Query query = JPA.em().createNativeQuery("insert into item_details(item_status) values(?)") .setParameter(1, itemstat).executeUpdate();