错误信息我正在尝试制作一个简单的SpringBoot应用程序,并在尝试运行它时得到此错误。不知道为什么。
@Service
public class UserService {
@Autowired
UserRepository userRepository;
public User getUserByEmail(String email) {
return userRepository.findByEmail(email);
}
public User createUser(User u) {
User user = userRepository.save(u);
return user;
}
public void deleteUserById(Long id) {
userRepository.deleteById(id);
}
public User findUserById(Long id) {
return userRepository.findById(id);
}
}
这里有一个到仓库的链接:https://github.com/deckard20202020/HelpingHand
我想我只需要在返回类型上加上<Optional。>
JpaRepository
JpaRepository已经实现了许多常用的签名。其中之一是<T> findById(Integer id);
,它与包含Long
作为id参数的签名冲突。
你不需要添加签名,你已经可以开箱即用了。
既然我看到你在怀疑应该使用什么抽象,下面是抽象层次的顺序:
<<ul>您自己的抽象
public interface SomeJpaRepository extends SomeRepositry, CrudRepositry<Some, Long> {
// Extra functionality on top of the provided CRUD
}
public interface SomeRepository {
// Implemented methods and helpers to be used by the service
}
旁注:您也不需要添加@Repository注释,因为Spring Data已经扫描了类路径中所有jarepository类型的接口或类。
欢迎来到stackoverflow, @deckard2020!
我认为你需要用@Transactional(readonly = true)
装饰UserService
的findUserById
功能。