我正在尝试使用JPA元模型(Hibernate 4.2.8)访问@MappedSuperclass
中Criteria Query
中定义的属性:
@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;
}
有没有办法访问基类的属性?
答案 0 :(得分:2)
当然有办法。正如我在您的代码中看到的那样,您已经访问过它:History_.createdOn
是MappedSuperclass的一个属性。如果通过“访问”你的意思是选择,而不仅仅是:
query.select(History_.createdOn)