Java 三物合一?
接下来我将返回三个json对象。无论如何,我只想作为一个JSON对象返回。类似于我下面的结果。所以,我试图展示我的控制器-我相信它在我的控制器中返回3个对象,而不是一个。谢谢你的帮助 这是我的密码: 我试着这样做:Java 三物合一?,java,spring-boot,Java,Spring Boot,接下来我将返回三个json对象。无论如何,我只想作为一个JSON对象返回。类似于我下面的结果。所以,我试图展示我的控制器-我相信它在我的控制器中返回3个对象,而不是一个。谢谢你的帮助 这是我的密码: 我试着这样做: @RequestMapping(value = "all", method = RequestMethod.GET) public @ResponseBody MyAutoComplete getMoney(@RequestParam(value = "myautoc
@RequestMapping(value = "all", method = RequestMethod.GET)
public @ResponseBody
MyAutoComplete getMoney(@RequestParam(value = "myautocomplete") String myautocompleteValue) {
List<MyAutoComplete> list = myautoCompleteService.gettingMoney(myautocompleteValue);
return merge(list);
}
MyAutoComplete merge(List<MyAutoComplete> list){
MyAutoComplete accountacy = list.get(0);
for (int i = 1; i < list.size(); i++) {
MyAutoComplete myautoComplete = list.get(i);
if (myautoComplete.getTimeAnnual() != null) {
accountacy.setTimeAnnual((autoComplete.getTimeAnnual(());
}
if (autoComplete.getTimeBiweekly() != null) {
accountacy.setTimeBiweekly(autoComplete.getTimeBiweekly());
}
if (autoComplete.getTimeHourly() != null) {
accountacy.setTimeHourly(autoComplete.getTimeHourly());
}
}
return accountacy;
}
@RequestMapping(value=“all”,method=RequestMethod.GET)
公共@ResponseBody
MyAutoComplete getMoney(@RequestParam(value=“MyAutoComplete”)字符串myautocompleteValue){
List List=myautoCompleteService.gettingMoney(myautocompletesvalue);
返回合并(列表);
}
MyAutoComplete合并(列表){
MyAutoComplete accountacy=list.get(0);
对于(int i=1;i
我只是在github中看到您的代码,但关键代码不存在。现在我将说出我的猜测。
此代码中可能会出现问题
@Repository
public interface AutoCompleteRepository extends CrudRepository<AutoComplete, String> {
@Query("select e from AutoComplete e where e.jobClassCd like %:jobClassCd%")
public Stream<AutoComplete> streamAll();
List<AutoComplete> findByJobClassCdStartsWith(String jobClassCd);
}
@存储库
公共接口自动完成存储扩展了CRUDEPository{
@查询(“从自动完成e中选择e,其中e.jobClassCd like%:jobClassCd%”)
公共流streamAll();
列出FindByJobClassCdStartWith(字符串jobClassCd);
}
在fingByJobClassCdStartsWith(字符串jobClassCd)方法中,我认为当您从
在数据库中,您可以获得三条记录,并可以手动将其合并到一个对象中
或
您可以通过编辑您的问题将不可见的代码放在这里。如果您无法更改存储库端的查询,您可以将列表中的对象合并为控制器中的单个对象
public @ResponseBody
LIst<AutoComplete> getSalary(@RequestParam(value = "autocomplete") String autocompleteValue) {
List<AutoComplete> list = autoCompleteService.retrieveSalary(autocompleteValue);
return Arrays.asList(merge(list));
}
AutoComplete merge(List<AutoComplete> list){
AutoComplete acc = list.get(0);
for (int i = 1; i < list.size(); i++) {
AutoComplete autoComplete = list.get(i);
if (autoComplete.getAnnual() != null) {
acc.setAnnual(autoComplete.getAnnual());
}
if (autoComplete.getBiweekly() != null) {
acc.setBiweekly(autoComplete.getBiweekly());
}
if (autoComplete.getHourly() != null) {
acc.setHourly(autoComplete.getHourly());
}
}
return acc;
}
public@ResponseBody
列出getSalary(@RequestParam(value=“autocomplete”)字符串autocompleteValue){
List List=autoCompleteService.retrieveSalary(autocompletesvalue);
返回数组.asList(merge(list));
}
自动完成合并(列表){
自动完成acc=list.get(0);
对于(int i=1;i
您在此处找到的源代码是最新的?您是如何绑定此属性的(每小时、每两周、每年)第一种情况是JSON?是的。我得到了三条记录。因此,通过使用流它将使其工作?你说每小时、每两周、每年都是名为rate_type的列的值。如果你能在sql语句中做些更改,它将工作。就像group_concat(rate_type)一样作为rate\u type…按id分组可以轻松地制作一条记录,其他的都是一样的。你能用我的@Query
语句向我展示一下如何分组(rate\u type)
会起作用吗?因此,你说用流代替?我说如果你可以修改查询sql并更改返回记录的计数,ohters将不需要更改。例如,选择e,group\u concat(rate\u type)as rate_type from AutoComplete e,其中e.jobClassCd like%:jobClassCd%group by id
将返回一个记录group by id或您使用的其他唯一字段。如果您不能这样做,您可以编写一些代码来删除重复项,并将其合并到服务代码中的一个obejct中。@sidgate不是这一行AutoComplete acc=list.get(0)
仅获取第一行?我如何获取以json格式显示的每两周和每年的数据?!您的问题提到要将所有数据分组到一个结果中没有。我显示了一个示例。请检查我想这样返回:
我的问题中的模式。谢谢!您现在得到了什么?仅每小时一次,这是索引0.(数据库中的第一行)