我通常想做这样的事情:
CriteriaBuilder qb = em.getCriteriaBuilder();
CriteriaQuery<Person> c = qb.createQuery(Person.class);
但是通过会话工厂而不是实体经理。
类似的东西:
final TypedQuery<MyType> query = getSessionFactory().getCurrentSession().createTypedQuery(MyType.class, "query");
这应该是微不足道的,但由于某种原因,我无法找到有关如何做到的信息(如果可能的话,但我认为应该是这样)。
谢谢,
答案 0 :(得分:2)
这是不可能的,因为Session没有任何返回javax.persistence.TypedQuery实例的方法。使用org.hibernate.Query来实现javax.persistence.TypedQuery会非常令人惊讶,因为它们是不同的野兽(Hibernate中不同API的一部分)。为了安全起见,我也从源头检查过。
答案 1 :(得分:2)
我不相信Hibernate Session上有这样的方法。为什么不使用EntityManager?它是JPA的一部分,因此是Java EE标准?
如果你使用Spring(不是我个人的选择),你可以使用HibernateTemplate隐藏你的演员,并提供类型安全的方法。
演员阵容总会发生在某个地方!