在以下代码中,我们从特定实体(Pet)获取数据。我可以使用此代码获取 动态任何实体(而不是宠物使用客户,订单等)
CriteriaQuery<Pet> cq = cb.createQuery(Pet.class);
Root<Pet> pet = cq.from(Pet.class);
cq.where(cb.equal(pet.get("name"), "Fido"));
TypedQuery<Pet> q = em.createQuery(cq);
List<Pet> results = q.getResultList();
答案 0 :(得分:2)
是的,当然:
public <T> List<T> getEntitiesNamedFido(Class<T> clazz) {
CriteriaQuery<T> cq = cb.createQuery(clazz);
Root<T> root = cq.from(clazz);
cq.where(cb.equal(root.get("name"), "Fido"));
TypedQuery<T> q = em.createQuery(cq);
List<T> results = q.getResultList();
}
现在传递任何具有持久性&#34;名称&#34;的实体类。属性,您将获得名为Fido的实体实例列表。
答案 1 :(得分:0)
在函数上使用模板并传递类类型,参数名称和&amp;通过参数的价值观。