JPA,按百分比更新所有值

时间:2018-04-04 22:45:39

标签: java jpa jpql

我想以给定的百分比更新我的实体中的所有价格。我的代码:

@Override
public List<ProductDTO> updatePriceByPercent(double percent) {
    EntityManager em = getEntityManager();
    TypedQuery<ProductDTO> q = em.createNamedQuery("ProductDTO.updatePriceByProcent", ProductDTO.class);
    q.setParameter("percent", percent);
    q.executeUpdate();
    return q.getResultList();
}

我的查询如下:

@NamedQuery(name = "ProductDTO.updatePriceByPercent", query="update ProductDTO set price += price * :percent")

并且给了我以下错误:

  

[29,30] UPDATE条款的价格为+&#39;和&#39; =价格*:百分比&#39;没有用逗号分隔。

     

[28,28]必须指定等号。

     

[30,30]算术因子必须后跟表达式。

     

[30,30]缺少状态字段路径表达式。

     

[32,37]左表达式不是算术表达式。

1 个答案:

答案 0 :(得分:0)

只需写下:

 price = price * (1 + :percent) 

我认为不支持+=Reference