2

我正在尝试访问在@MappedSuperclassJPACriteria Query元模型(Hibernate 4.2.8)中定义的属性:

@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;
}

有没有办法访问基类的属性?

4

1 回答 1

2

当然有办法。正如我在您的代码中看到的,您已经访问了它:它History_.createdOn是 MappedSuperclass 的一个属性。如果“访问”是指选择,那么您只需执行以下操作:

query.select(History_.createdOn)
于 2013-12-15T11:18:50.597 回答