hibernate 获取org.postgresql.util.PSQLException:对于findbyId()、findAll()等所有JPA检索查询,查询都没有返回结果

t1qtbnec  于 2023-10-23  发布在  PostgreSQL
关注(0)|答案(1)|浏览(204)

嗨,当我尝试使用JPA预定义和自定义方法方法查询检索实体数据时,得到此错误:
:未经授权的错误:org.postgresql.util.PSQLException:查询未返回任何结果。
例如,如果我从dao类调用这个getUserMailtyByUserEmailId()方法,它会给出No results were returned by the query in logs,for findAll()方法也会给出相同的结果。
但是我可以通过使用保存()方法来保存数据。
这里是刀类

  1. @Component
  2. public class UserDaoImpl implements UserDao {
  3. @Autowired
  4. private UserRepository userRepository;
  5. @Autowired
  6. private ModelMapper modelMapper;
  7. @Override
  8. public UserEntity createUser(UserDto userDto) {
  9. UserEntity userEntity=modelMapper.map(userDto,UserEntity.class);
  10. userEntity.setUserRole(Set.of(UserRole.END_USER));
  11. userEntity.setCreatedAt(LocalDateTime.now());
  12. return userRepository.save(userEntity);
  13. }
  14. @Override
  15. public boolean isUserExistsByEmailOrMobileNumber(String userEmail, String mobileNumber) {
  16. return userRepository.existsByUserEmailOrUserMobileNumber(userEmail,mobileNumber);
  17. }
  18. @Override
  19. public Optional<UserEntity> getUserEntityByUserEmailId(String username) {
  20. return userRepository.findUserEntityByUserEmail(username);
  21. }
  22. }

Repository类

  1. @Repository
  2. public interface UserRepository extends JpaRepository<UserEntity, Long> {
  3. boolean existsByUserEmailOrUserMobileNumber(String userEmail, String userMobileNumber);
  4. Optional<UserEntity> findUserEntityByUserEmail( String userEmail);
  5. }

实体类

  1. @Entity(name = "user_model")
  2. @Data
  3. @Setter
  4. @Getter
  5. public class UserEntity{
  6. @Id
  7. @GeneratedValue(strategy = GenerationType.IDENTITY)
  8. private Long id;
  9. @NotNull
  10. @NotEmpty
  11. private String firstName;
  12. private String lastName;
  13. private Gender gender;
  14. @NotNull
  15. @NotEmpty
  16. private String userEmail;
  17. @NotNull
  18. @NotEmpty
  19. private String userMobileNumber;
  20. @NotNull
  21. @NotEmpty
  22. private String password;
  23. private Date birthDate;
  24. @Enumerated(EnumType.STRING)
  25. private Set<UserRole> userRole;
  26. @Temporal(TemporalType.TIMESTAMP)
  27. private LocalDateTime createdAt;
  28. @Temporal(TemporalType.TIMESTAMP)
  29. private LocalDateTime updatedAt;
  30. }

在控制台中,生成日志查询,这些查询按预期工作
从user_model u1_0中选择u1_0.id,u1_0.birth_date,u1_0.created_at,u1_0.first_name,u1_0.gender,u1_0.last_name,u1_0.password,u1_0.updated_at,u1_0.user_email,u1_0.user_mobile_number,u1_0.user_role,其中u1_0.user_email=?休眠:从user_model u1_0中选择u1_0.id,u1_0.birth_date,u1_0.created_at,u1_0.first_name,u1_0.gender,u1_0.last_name,u1_0.password,u1_0.updated_at,u1_0.user_email,u1_0.user_mobile_num,u1_0.user_role,其中u1_0.user_email=?

d6kp6zgx

d6kp6zgx1#

最后,我解决了。此问题是因为userEntity中的set字段。我必须在userEntity和角色表之间创建连接表。因此,每当我们获取用户实体时,JPA都可以自动添加角色。谢谢你

相关问题