3
我对一个小项目使用Hibernate和JPA。使用Hibernate 3.6.3和JPA 2.0创建类型化查询时的AbstractMethodError
不知何故试图获得一个键入查询时,所述
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;
}
不能在评论中提供enouth信息,所以我给出了另一个答案。 – m3th0dman 2012-03-25 15:07:19
我已经把hibernate-entitymanager-3.6.3.jar,但现在我得到另一个异常(更早):java.lang.ExceptionInInitializerError引起:javax.persistence.PersistenceException:无效的persistence.xml。 解析XML时出错(第1行:列-1):cvc-elt.1:找不到元素'persistence'的声明。 Persistence.xml看起来像loke: – m3th0dman 2012-03-25 15:14:21
我无法发布其他答案(没有足够的声望),但我没有足够的空间来发布persistence.xml文件,因此我会放置一个链接:http://dl.dropbox.com/u/ 27959140/persistence.xml – m3th0dman 2012-03-25 15:19:35