【发布时间】:2012-04-09 06:02:11
【问题描述】:
我在一个小项目中使用 Hibernate 和 JPA。
在尝试获取类型化查询时,
java.lang.AbstractMethodError: org.hibernate.ejb.EntityManagerImpl.createQuery(Ljava/lang/String;Ljava/lang/Class;)Ljavax/persistence/TypedQuery
被抛出; org.hibernate.ejb.EntityManagerImpl 来自 hibernate-entitymanager-3.3.2.GA.jar 。
抛出上述异常是不行的:
public Account read(Account entity) {
EntityManager em = ManagedEntityManagerFactory.getEntityManager();
String jpql = JPQLGenerator.readAccount();
TypedQuery<Account> typedQuery =
em.createQuery(jpql, Account.class);
typedQuery.setParameter("accountId", entity.getAccountId());
return typedQuery.getSingleResult();
}
不过没关系:
public Account read(Account entity) {
EntityManager em = ManagedEntityManagerFactory.getEntityManager();
String jpql = JPQLGenerator.readAccount();
Query query =
em.createQuery(jpql);
query.setParameter("accountId", entity.getAccountId());
Account account = null;
Object obj = query.getSingleResult();
if(obj instanceof Account) {
account = (Account)obj;
}
return account;
}
【问题讨论】:
标签: hibernate jpa jpa-2.0 entitymanager