【发布时间】:2018-05-29 14:16:08
【问题描述】:
是否可以将@PostLoad 与 Hibernate Criteria API 一起使用?例如:
@Entity
public class EntityExample {
private Integer startYear;
private Integer startPeriod;
@Transient
private String start;
@PostLoad
private void init() {
this.start = this.startYear.toString() + this.startPeriod.toString();
}
public String getStart() {
return this.start;
}
}
public class DAOExample {
public Collection<EntityExample> get(String start) {
Session session = getSession();
Criteria criteria = session.createCriteria(EntityExample.class, "entity");
criteria.add(Restrictions.ne("entity.start", start));
return criteria.list();
}
}
当我将 @Formula 与 Hibernate Criteria 一起使用时(例如:@Formula(value = "start_year::text || start_period::text")),它可以正常工作。但是我正在尝试使用@PostLoad,因为如果需要重构任何涉及的属性,则无需记住手动更改公式的value。但是,使用@PostLoad 会导致:org.hibernate.QueryException: could not resolve property: start of: com.entity.EntityExample
【问题讨论】:
标签: java hibernate hibernate-criteria transient