jpa查询列的算术运算

时间:2012-04-14 12:16:39

标签: jpa

我对jpa有点新鲜。我创建了一些简单的查询。但是现在我遇到了一个简单查询的问题。我有一个实体付款有3列(Id,Amount1,Amount2)。 现在我想找到来自Payment的所有行,其中Amount1 + Amount2大于somevalue。我试过类似的东西:

Query query = getEntityManager().createQuery(
  "Select p from Payment p WHERE p.Amount1 + p.Amount2 >' " + someamount +" ' ");

但它不起作用。我也尝试使用SUM,但这只是一列。 谁能帮我这个。 感谢。

1 个答案:

答案 0 :(得分:0)

假设您的实体已正确定义,以下查询应该可以正常工作:

final BigDecimal threshold = BigDecimal.valueOf(1000);
TypedQuery<Payment> query = getEntityManager().createQuery(
      "SELECT p FROM Payment p WHERE p.Amount1 + p.Amount2> :value",
      Payment.class);
query.setParameter("value", threshold);
List<Payment> results = query.getResultList();