我正在尝试使用 JPA 元模型 (Hibernate 4.2.8) 访问 Criteria Query
中 @MappedSuperclass
中定义的属性:
@MappedSuperclass
public class BaseEntity {
private DateTime createdOn;
}
我的实体:
@Entity
@Table(name = "HISTORY")
public class History extends BaseEntity implements Serializable {
private Long id;
}
如何访问createdOn
?
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
CriteriaQuery<History> c = cb.createQuery(History.class);
Root<History> h = c.from(History.class);
h.orderBy(cb.asc(a.get(History_.createdOn)));
历史_:
@Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor")
@StaticMetamodel(History.class)
public abstract class History_ extends com.test.BaseEntity_ {
public static volatile SingularAttribute<History, Long> id;
}
有没有办法访问基类的属性?
最佳答案
当然有办法。正如我在代码中看到的,您已经访问了它:History_.createdOn
是 MappedSuperclass 的属性。如果您所说的“访问”是指选择,那么您只需执行以下操作即可:
query.select(History_.createdOn)
关于jpa - 使用元模型类访问 Criteria Query 中的 @MappedSuperclass' 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20584021/