Я хочу получить пользователей с указанным c и передать его в шаблон тимелист. Это то, что у меня есть сейчас. Это моя модель пользователя
и модель для подражания:
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "roles")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "role_id")
private int id;
@Column(name = "role")
private String role;
}
Мой репозиторий пользователя:
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
User findByEmail(String email);
User findByUserName(String userName);
User findByRole(String role);
}
Служба пользователя:
@Autowired
public UserService(UserRepository userRepository,
RoleRepository roleRepository,
BCryptPasswordEncoder bCryptPasswordEncoder) {
this.userRepository = userRepository;
this.roleRepository = roleRepository;
this.bCryptPasswordEncoder = bCryptPasswordEncoder;
}
public User findUserByEmail(String email) {
return userRepository.findByEmail(email);
}
public User findUserByUserName(String userName) {
return userRepository.findByUserName(userName);
}
public User findUserByRole(String role){
return userRepository.findByRole(role);
}
Предположим, я хочу получить всех пользователей с ролью 'restaurant' -
Контроллер:
@GetMapping(value="/donor/home")
public ModelAndView donorHome(){
ModelAndView modelAndView = new ModelAndView();
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
User user = userService.findUserByUserName(auth.getName());
User user_res = userService.findUserByRole("Restaurant");
modelAndView.addObject("userName", "Welcome " + user.getUserName() + "/" + user.getFirstName() + " " + user.getLastName() + " (" + user.getEmail() + ")");
modelAndView.addObject("res", "user_res");
modelAndView.getModel();
modelAndView.setViewName("/donor/donor_home");
return modelAndView;
}