想从地址表中搜索城市。
实体:酒店
@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时发生。我已经尝试过但无法解决此问题。请帮我。谢谢