我正在使用Hibernate框架编写Spring应用程序。
在我的应用程序中有一个JSON调用。在那个JSON响应中返回对象层次结构,如下所示:
这位农民拥有身份证,姓名,地址和联系方式等属性。
数组列表的第一个对象返回所有属性,子对象用相关数据填充。但问题是,农民处于第二或第三,或者在任何其他供应批次中,农民作为供应批次中的一个属性返回,称为农民"具有农民身份证的价值。
但是当我在控制器中循环该对象时,它会打印所有农民的名字。我无法弄清楚这种行为是什么。以下是示例对象的屏幕截图。
这是我控制器中的json响应
@RequestMapping(value = {"admin/getTaskByDate","user/getTaskByDate"}, method = RequestMethod.GET)
public @ResponseBody List<Task> getTaskByDate(@RequestParam("date") String date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dat = null;
try {
dat = sdf.parse(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<Task> tasksByDate = taskService.getFeedIssueTasksByDate(dat);
for(Task t : tasksByDate)
{
System.out.println("Farmers-"+t.getSupplyBatch().getFarmer().getName());
}
return tasksByDate;
}
以下是jsp页面中调用此json响应的代码
<script>
function getTaskById(){
var date = $('#inputDate').val();
$("#tblTask").find("tr:gt(0)").remove();
var sid = this.value;
$.ajax({
url : 'http://localhost:8080/jp/user/getTaskByDate.json?date='+date+'',
success : function(data) {
console.log(data);
for(var i = 0; i < data.length; i++) {
var obj = data[i];
var act;
var dt = new Date(obj.duedate);
if(obj.type == "Feed Issuing")
{
act='<td><a href="./addBatchFeed.html?tid='+obj.taskId+'&bid='+obj.supplyBatch.supplyBatchId+'" class="btn btn-primary">Issue Feed</a></td>'
}
else
{
act='<td><a href="./addCatching.html?tid='+obj.taskId+'&bid='+obj.batch+'" class="btn btn-primary">Catch</a></td>';
}
$('#tblTask tr:last').after('<tr><td>'+obj.taskId+'</td><td>'+dt+'</td><td>'+obj.status+
'</td><td>'+obj.supplyBatch.supplyBatchId+'</td><td>'+obj.supplyBatch.farmer.name+'</td><td>'+obj.feedType+'</td><td>'+obj.quantity+'</td>'+act+'</tr>');
}
}
});
return false;
}