Проблема: Когда я использую JpaRepository и использую метод для получения пользователя по имени пользователя, как показано ниже:
public interface UserRepository extends JpaRepository<User, Integer> {
@Query(value = "select * from users where username = :name", nativeQuery = true)
User findUserByName(@Param("name") String name);
}
Это сущность:
@Entity
@Table(name = "users")
@Data
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "username", nullable = false, unique = true)
private String username;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "joined_date", nullable = false, unique = true)
@CreatedDate
private Date joinedDate;
@Column(name = "password")
private String password;
@Column(name = "bio")
private String bio;
@Column(name = "email", nullable = false, unique = true)
private String email;
}
Иэто контроллер:
@RestController
@RequestMapping("/u")
public class UserController {
@Autowired
private UserRepository repo;
....
@GetMapping("/{name}")
public ResponseEntity<User> getUsernameAndPasswordByName(@PathVariable("name") String name) {
User user = repo.findUserByName(name);
if(user == null) {
return new ResponseEntity(HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<User>(user, HttpStatus.OK);
}
}
Это полные данные JSON при получении всего пользователя из БД:
Икогда я получаю пользователя от имени (URL: localhost/u/{username}
):
Я заверяю, что имя, введенное из URL, является правильным.