我正在学习Spring Data并创建一个项目。项目像一个练习列表,用Hibernate将数据保存在MySql中,但它出了点问题,我不知道是什么
我的控制器:
@Controller
public class UserController {
private final IUserService userService;
@Autowired
public UserController(IUserService userService) {
this.userService = userService;
}
@PostMapping(path = "/user/create")
public ResponseEntity<UserPojo> createUser(@RequestBody User user) {
UserPojo result = userService.createUser(user);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@GetMapping(path = "/user/{id}")
public ResponseEntity<UserPojo> getUser(@PathVariable Long id) {
UserPojo result = userService.getUser(id);
return new ResponseEntity<>(result, HttpStatus.OK);
}
}
服务:
@Service
public class UserService implements IUserService {
@PersistenceContext
EntityManager entityManager;
private final Converter converter;
@Autowired
public UserService(Converter converter) {
this.converter = converter;
}
@Override
@Transactional
public UserPojo createUser(User user) {
entityManager.persist(user);
return converter.userToPojo(user);
}
但是当我在Postman上运行时,我得到了这个-我不知道为什么它会出现:
更多信息:
java.lang.ClassNotFoundException: jakarta.persistence.EntityManagerFactory
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1449)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1257)
java.base/java.lang.Class.forName0(Native Method)
java.base/java.lang.Class.forName(Class.java:488)
java.base/java.lang.Class.forName(Class.java:467)
java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114)
我的POM和更多代码在这里:
GitHub
1条答案
按热度按时间mo49yndu1#
这里有一个奇怪的、不一致的依赖关系混合体
当你使用Spring Data JPA 3.0.0版本时,你应该使用Hibernate 6+。开始时,你不应该指定Hibernate的版本,因为这些版本是在Spring Data JPA
pom.xml
中指定的。而且您根本不需要
hibernate-jpa-2.0-api
。