java - Solution for StackOverflowError
问题描述
want to search with the city from address table.
Entity: Hotel
@JsonManagedReference
@OneToMany(cascade = CascadeType.ALL, mappedBy = "hotel")
private List<Address> address;
Entity: Address
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "hotel_id", nullable = false)
@OnDelete(action = OnDeleteAction.CASCADE)
@JsonBackReference
private Hotel hotel;
controller:
@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";
}
service:
public List<Address> searchAddressByCity(String city) {
return addressRepository.findAll();
}
search and list view:
<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>
Error:
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]
I want to search for the city. but when I searching StackOverflowError is occurring. I have tried but unable to solve this problem. please help me. thanks
解决方案
推荐阅读
- typescript - (typeof arr1)[number] 的作用是什么?有没有其他用途?比如【字符串】还是【联合类型】?
- sql-server - 将 django 模型与遗留数据库集成
- ios - UILabel 不显示
- c - 我需要帮助过滤 C 中的坏词吗?
- node.js - 实时服务器上的 NPM 生产和开发
- c# - 是否有一个线性 LINQ 构造用于通过合并两个列表并删除重复项来创建字典
- batch-file - 在 for 循环中变量不会增加
- kentico - How to implement Recaptcha V3 for Kentico?
- javascript - 使用 div 中的标签计数将类添加到每个父 div 中的所有子标签
- python - 为什么 lightgbm 训练出错,显示“特征名称大小错误”?