我正在尝试从ajax请求获取对象列表并获取内部服务器错误。它在早上工作,但现在却没有。 Ajax请求:
$.ajax({
type : 'get',
url : 'http://localhost:8080/FootballManager/draft/' + leaguename
+ '/players',
dataType : "json",
data : {
"leaguename" : leaguename
},
contentType : "application/json",
cache : false,
success : function(data) {
drawTable(data);
},
error : function(XmlHttpRequest, textStatus, errorThrown) {
alert("error= " + errorThrown);
}
});
Spring mvc控制器:
@RequestMapping(value = "{leaguename}/players", method = RequestMethod.GET,headers = "Accept=application/json")
public @ResponseBody
List<Players> getPlayers(@RequestParam("leaguename") String leaguename,HttpSession session) {
try {
//list of players
return players;
} catch (Exception e) {
LOG.log(Level.SEVERE, "Exception: ", e);
return null;
}
}
UPD。这很奇怪,但是它可以与其他对象列表一起使用,也很奇怪,如果我手动创建所有对象(比如新的Player())并使用setter设置相同的字段并在列表中添加所有对象,它就可以工作,但是如果我通过hibernate从DB获取此对象,我收到此错误
答案 0 :(得分:1)
渴望不是解决方案。它的解决方法有缺点。您的问题是,我认为您的集合未加载,并且在您的事务之外您(或您的序列化程序)无法访问db。其中一个解决方案是使用DTO将数据传输到客户端并读取其中的数据。它听起来也像是一种解决方法,但在实践中,您通常会在客户端使用专门的和受限制的视图。
答案 1 :(得分:0)
问题解决了。将fetchType更改为Eager解决了此问题