gpt4 book ai didi

java - 仅当查询未找到任何结果时才出现错误 java.lang.ClassNotFoundException : org. springframework.orm.jpa.EntityManagerFactoryUtils

转载 作者:行者123 更新时间:2023-12-01 13:54:40 31 4
gpt4 key购买 nike

我会先发布我的代码。

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"),

如果数据库中确实存在姓名,则此代码可以正常工作。

如果我输入数据库中没有的姓名,我会得到这样的异常:

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/orm/jpa/EntityManagerFactoryUtils at org.springframework.orm.jpa.aspectj.JpaExceptionTranslatorAspect.ajc$afterThrowing$org_springframework_orm_jpa_aspectj_JpaExceptionTranslatorAspect$1$18a1ac9(JpaExceptionTranslatorAspect.aj:33) at pl.program.dao.PersonJpaDao.checkIfExists(PersonJpaDao.java:27) at pl.program.Start.test(Start.java:121) at pl.program.Main.main(Main.java:11) Caused by: java.lang.ClassNotFoundException: org.springframework.orm.jpa.EntityManagerFactoryUtils at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 4 more

例如,如果我在数据库中有一个名字为 Jack 且姓 Black 的人,我会打电话

checkIfExists("Jack", "Black")

一切都好。但如果我把它改成

checkIfExists("Jack1", "Black")

我收到上面提到的异常。

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

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

您知道这里可能出现什么问题吗?

最佳答案

如果您使用maven,则必须缺少以下依赖项(当然是各自的版本):

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>

或者

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

spring-orm-3.2.4.RELEASE.jar

关于java - 仅当查询未找到任何结果时才出现错误 java.lang.ClassNotFoundException : org. springframework.orm.jpa.EntityManagerFactoryUtils,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19686937/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com