Я создаю систему бронирования рейсов, используя Spring MVC
и Spring Security
. В этом приложении я собираюсь сохранить несколько резервирований для одного пользователя. Затем, если пользователь зашел в систему, я хочу показать свои данные о бронировании. В базе данных есть несколько записей для одного пользователя. Вот простая форма. (Я использую Spring 4.1.6
и Spring security 4.0.1
)Найти несколько объектов по имени, используя Spring JPA
<table class="table table-bordered table-hover table-striped ">
<thead>
<tr>
<th>User name</th>
<th>Operations</th>
</tr>
</thead>
<tbody>
<c:forEach items="${us}" var="user">
<tr>
<td>
${user.name}
</td>
<td>
${user.passengers}
</td>
</tr>
</c:forEach>
</tbody>
</table>
Вот controller
@RequestMapping("/account/my-bookings")
public String showBookings(Model model, Principal principal){
String name = principal.getName();
model.addAttribute("us",reservationService.findAll(name));
return "my-bookings";
}
Вот service class
public List<FlightReservation> findAll(String name) {
FlightReservation flightReservation = flightReservationRepository.findByName(name);
return findAll(flightReservation.getName());
}
Вот repository
public interface FlightReservationRepository extends JpaRepository<FlightReservation, Integer> {
FlightReservation findByName(String name);
}
Когда я выполняю это, он дает несколько исключений. Если в базе данных имеется несколько записей, она дает result returns more than one elements
. Если в базе данных есть только одна запись, в консоли есть бесконечный цикл.
Как новичок, я ценю вашу помощь, чтобы узнать, что я делаю неправильную вещь или что мне нужно сделать, чтобы получить детали бронирования в таблице?
Огромное вам спасибо, ты спас меня. Это работает хорошо. – RYJ