错误java.lang.ClassNotFoundException:org.springframework.orm.jpa.EntityManagerFactoryUtils仅当查询未执行时';我找不到任何结果

错误java.lang.ClassNotFoundException:org.springframework.orm.jpa.EntityManagerFactoryUtils仅当查询未执行时';我找不到任何结果,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我会先发布我的代码 public boolean checkIfExists(String name, String surname) { Object m = null; entityManager.getTransaction().begin(); Query q = entityManager.createNamedQuery(Person.findByNameSurname) .setParameter("

我会先发布我的代码

public boolean checkIfExists(String name, String surname) {
        Object m = null;
        entityManager.getTransaction().begin();

        Query q = entityManager.createNamedQuery(Person.findByNameSurname)
                .setParameter("i", name).setParameter("n", surname);

        try {
            m = q.getSingleResult();
        } catch (Exception sqle) {
            System.out.println("SQL exception: " + sqle.getMessage());
        }
        entityManager.getTransaction().commit();

        if (m != null)
            return true;

        return false;
    }
查询:

@NamedQuery(name=Person.findByNameSurname, query="SELECT p FROM Person p WHERE p.name like :i AND p.surname like :n"),
如果数据库中确实存在有姓名和姓氏的人,则此代码工作正常

如果我键入数据库中不存在的名称或姓氏,则会出现以下异常:

线程“main”java.lang.NoClassDefFoundError中出现异常: org/springframework/orm/jpa/EntityManagerFactoryUtils位于 org.springframework.orm.jpa.aspectj.jpaexceptiontranslatorspect.ajc$后加$org\u springframework\u orm\u jpa\u aspectj\u jpaexceptiontranslatorspect$1$18a1ac9(jpaexceptiontranslatorspect.aj:33) 在 checkIfExists(PersonJpaDao.java:27) 在pl.program.Start.test(Start.java:121)中 pl.program.Main.Main(Main.java:11)由以下原因引起: java.lang.ClassNotFoundException: org.springframework.orm.jpa.EntityManagerFactoryUtils位于 java.net.URLClassLoader$1.run(URLClassLoader.java:366)位于 java.net.URLClassLoader$1.run(URLClassLoader.java:355)在 java.security.AccessController.doPrivileged(本机方法)位于 java.net.URLClassLoader.findClass(URLClassLoader.java:354)位于 loadClass(ClassLoader.java:424)位于 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)位于 loadClass(ClassLoader.java:357)。。。4更多

例如,如果我在数据库里有一个叫杰克,姓布莱克的人,我就打电话给他

checkIfExists("Jack", "Black")
一切都好。但如果我把它改成

checkIfExists("Jack1", "Black")
我得到上面提到的例外情况

当数据库中不存在记录并且我想使用
getSingleResult()
时,类似的问题也会发生在其他方法上

我尝试了
getResultList()
,它返回空列表


你知道这里会有什么问题吗?

如果你使用的是maven,那么你肯定缺少以下依赖性(当然是相应的版本):


org.springframework
春季甲虫
3.2.4.1发布

如果不使用maven,请显式提供此jar文件(同样是各自的版本):


spring-orm-3.2.4.RELEASE.jar

您是在使用maven还是ant构建项目?您似乎在路径中缺少相应的jar文件。
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>3.2.4.RELEASE</version>
</dependency>