嗨,当我尝试使用JPA预定义和自定义方法方法查询检索实体数据时,得到此错误:
:未经授权的错误:org.postgresql.util.PSQLException:查询未返回任何结果。
例如,如果我从dao类调用这个getUserMailtyByUserEmailId()方法,它会给出No results were returned by the query in logs,for findAll()方法也会给出相同的结果。
但是我可以通过使用保存()方法来保存数据。
这里是刀类
@Component
public class UserDaoImpl implements UserDao {
@Autowired
private UserRepository userRepository;
@Autowired
private ModelMapper modelMapper;
@Override
public UserEntity createUser(UserDto userDto) {
UserEntity userEntity=modelMapper.map(userDto,UserEntity.class);
userEntity.setUserRole(Set.of(UserRole.END_USER));
userEntity.setCreatedAt(LocalDateTime.now());
return userRepository.save(userEntity);
}
@Override
public boolean isUserExistsByEmailOrMobileNumber(String userEmail, String mobileNumber) {
return userRepository.existsByUserEmailOrUserMobileNumber(userEmail,mobileNumber);
}
@Override
public Optional<UserEntity> getUserEntityByUserEmailId(String username) {
return userRepository.findUserEntityByUserEmail(username);
}
}
Repository类
@Repository
public interface UserRepository extends JpaRepository<UserEntity, Long> {
boolean existsByUserEmailOrUserMobileNumber(String userEmail, String userMobileNumber);
Optional<UserEntity> findUserEntityByUserEmail( String userEmail);
}
实体类
@Entity(name = "user_model")
@Data
@Setter
@Getter
public class UserEntity{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
@NotEmpty
private String firstName;
private String lastName;
private Gender gender;
@NotNull
@NotEmpty
private String userEmail;
@NotNull
@NotEmpty
private String userMobileNumber;
@NotNull
@NotEmpty
private String password;
private Date birthDate;
@Enumerated(EnumType.STRING)
private Set<UserRole> userRole;
@Temporal(TemporalType.TIMESTAMP)
private LocalDateTime createdAt;
@Temporal(TemporalType.TIMESTAMP)
private LocalDateTime updatedAt;
}
在控制台中,生成日志查询,这些查询按预期工作
从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=?
1条答案
按热度按时间d6kp6zgx1#
最后,我解决了。此问题是因为userEntity中的set字段。我必须在userEntity和角色表之间创建连接表。因此,每当我们获取用户实体时,JPA都可以自动添加角色。谢谢你