хотите выполнить поиск по городу из адресной таблицы.
Сущность: Гостиница
@JsonManagedReference
@OneToMany(cascade = CascadeType.ALL, mappedBy = "hotel")
private List<Address> address;
Объект: Адрес
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "hotel_id", nullable = false)
@OnDelete(action = OnDeleteAction.CASCADE)
@JsonBackReference
private Hotel hotel;
контроллер:
@GetMapping("/forSearch")
public String searchHotelPage(Model model, Address address){
model.addAttribute("address", address);
return "search-hotel";
}
@GetMapping("/search-hotel-city/{city}")
public String searchHotel(@RequestParam("city") String city, Model model){
List<Address> addresses = addressService.searchAddressByCity(city);
System.out.println("this is address: "+ addresses);
model.addAttribute("address",addresses );
return "search-hotel";
}
услуга:
public List<Address> searchAddressByCity(String city) {
return addressRepository.findAll();
}
поиск и просмотр списка:
<form th:action = "@{/search-hotel-city/city?city=${address.city}}" method = "get">
<div class = "form-group mb-2">
<input type = "text" class = "form-control" name = "city" id = "city" placeholder = "Search "/>
<input type = "submit" value = "search" class = "btn btn-primary">
</div>
</form>
<hr/>
<table class = "table">
<thead>
<tr>
<th scope = "col">Id</th>
<th scope = "col">roadNumber</th>
<th scope = "col">city</th>
<th scope = "col">country</th>
</tr>
</thead>
<tbody>
<tr th:each = "address: ${addresses}">
<th scope = "row" th:text = "${address.id}"></th>
<td th:text = "${address.roadNumber}"></td>
<td th:text = "${address.city}"></td>
<td th:text = "${address.country}"></td>
</tr>
</tbody>
</table>
Ошибка:
Hibernate: select address0_.hotel_id as hotel_id5_0_0_, address0_.id as id1_0_0_, address0_.id as id1_0_1_, address0_.city as city2_0_1_, address0_.country as country3_0_1_, address0_.hotel_id as hotel_id5_0_1_, address0_.road_number as road_num4_0_1_ from address address0_ where address0_.hotel_id=?
2019-07-28 12:58:28.184 ERROR 9836 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.StackOverflowError] with root cause
java.lang.StackOverflowError: null
at java.lang.Exception.<init>(Exception.java:102) ~[na:1.8.0_212]
at java.lang.ReflectiveOperationException.<init>(ReflectiveOperationException.java:89) ~[na:1.8.0_212]
Я хочу найти город. но когда я ищу StackOverflowError происходит. Я пытался, но не смог решить эту проблему. пожалуйста, помогите мне. спасибо




Удалите System.out.println("this is address: "+ addresses); из searchHotel.
Это может привести к бесконечным вызовам, которые приводят к StackOverflowError.
Возможные причины:
Удалите
System.out.println("this is address: "+ addresses);изsearchHotelи дайте мне знать