【发布时间】:2015-10-26 14:25:00
【问题描述】:
试图找出解决我面临的问题的方法,但到目前为止在网上找不到任何可以帮助我的材料。
基本上,我拥有的是一个休息控制器中的方法,它将查询字符串传递给我的 Hibernate DAO 并返回请求的数据。
例如
@RequestMapping("/submitQuery")
public Object submitQuery() {
// example of a query string, note this is dynamic and thus never hardcoded
String query = "SELECT C.amount, C.transactionDate, R.amount, R.transactionDate FROM CAR C, RFT R";
return DAO.submitQuery(query);
}
道:
public List<T> submitQuery(String query) {
Query q = getSession().createQuery(query);
return q.list();
}
此查询字符串将是动态的,因此创建实体并将其附加到查询的选项不是一个选项。
上述方法将返回以下格式的数据:
[
[
-4890.38,
1451826000000,
25.04,
1421499600000
],
[
-660,
1413205200000,
25.04,
1421499600000
],
[
-10768.53,
1423054800000,
25.04,
1421499600000
]
]
因此,没有标题,并且除此之外,日期已转换为数字。 我想要实现的是让方法以以下格式返回结果:
[
[
"amountc" : -4890.38,
"datec" : "01-03-2014",
"amountr" : 25.04,
"dater" : "01-03-2014"
],
[
"amountc" : -660,
"datec" : "03-02-2014",
"amountr" : 25.04,
"dater" : "03-02-2014"
],
[
"amountc" : -10768.53,
"datec" : "01-02-2014",
"amountr" : 25.04,
"dater" : "01-02-2014"
]
]
任何建议/帮助将不胜感激。
注意:不能使用 DTO 或实体,因为查询字符串是动态的并且会发生变化。我那里的查询字符串只是作为示例。
【问题讨论】:
-
使用
ammountc,datec,amountr,dater字段创建一个数据传输对象,而不是返回DAO.submitQuery(query),从该列表构建一个DTO 列表并返回它。 -
查询字符串更改,因此 DTO 需要更改。不能使用对象。
-
将结果转换成地图
-
你能举例说明你的意思吗@ShijuKBabu
标签: java json spring hibernate spring-mvc