【发布时间】:2013-08-05 13:38:50
【问题描述】:
我们可以使用@NamedNativeQuery 创建更新语句吗,
@Entity
@Table(schema = "public", name = "conversion_checker")
@NamedNativeQueries({
@NamedNativeQuery(name="updateExpireStatus", query="UPDATE conversion_checker SET status='Expired' FROM conversion_checker ")
})
public class ConversionChecker extends BaseEntity {...}
我在这里执行原生查询
/**
* {@inheritDoc}}
*/
@Override
public int executeNativeUpdate(String namedNativeQuery, Map<String, Object> params) {
Query query = getSession().getNamedQuery(namedNativeQuery);
if(params!=null && params.size()>0){
for(Map.Entry<String, Object> param: params.entrySet()){
query.setParameter(param.getKey(), param.getValue());
}
}
return query.executeUpdate();
}
它抛出,
Caused by: org.hibernate.cfg.NotYetImplementedException: Pure native scalar queries are not yet supported,
如何使用@NamedNativeQuery 执行更新语句,否则这是不可能的?
【问题讨论】:
-
你看这个是为了[用 Hibernate NamedNativeQueries 返回一个值](stackoverflow.com/questions/13278544/…)
-
@vinit-prajapati 另外请更正您的更新查询。应该是
UPDATE table_name SET properties WHERE clause
标签: sql hibernate postgresql