【发布时间】:2018-08-17 19:39:04
【问题描述】:
我想通过标准生成器增加我的变量。我写了以下代码
final CriteriaBuilder cb= getCriteriaBuilder();
final CriteriaUpdate<MyEntity> update = cb.createCriteriaUpdate(MyEntity.class);
final Root<MyEntity> root = update.from(MyEntity.class);
update.set("field", cb.sum(criteriaBuilder.<Long>sum(root.get("field"), 1L)));
update.where(cb.equal(root.get("id"), id));
final Query query = getEntityManager().createQuery(update);
query.executeUpdate();
我的实体:
@Table(name ="myEntity")
@Entity
public class MyEntity{
private String id;
private long field;
}
数据库表结构如下:
create table if not exists myEntity
(
field integer not null,
id varchar(32) not null,
);
但是我遇到了以下错误
java.lang.IllegalArgumentException:参数值 [org.hibernate.query.criteria.internal.expression.function.AggregationFunction$SUM@46dd740b] 与预期类型不匹配 [java.lang.Long (n/a)]
我该如何解决我的问题?
【问题讨论】:
标签: java postgresql hibernate hibernate-criteria