【发布时间】:2019-11-12 05:39:43
【问题描述】:
我正在使用 JDK 12、Spring Boot 2.1.5.RELEASE、Spring Data JPA。我遵循https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.sorting的指南
我有仓库
package com.example.repository;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import com.example.entity.Account;
import java.util.List;
@Repository
public interface AccountRepository extends JpaRepository<Account, Integer> {
@Query("SELECT a.id, a.accountNumber, a.accountName FROM Account a WHERE a.grade = 2")
List<Object[]> findAllAccount(Sort sort);
}
和
package com.example.dto;
public class SimpleAccount {
private Integer id;
private String accountNumber;
private String accountName;
public SimpleAccount() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getAccountNumber() {
return accountNumber;
}
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
}
实体Account 的字段比实体SimpleAccount 多。
在控制器上
package com.example.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.example.common.UtilityList;
import com.example.dto.SimpleAccount;
import com.example.entity.Account;
import com.example.repository.AccountRepository;
import javax.servlet.http.HttpServletRequest;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
@Controller
public class AccountController {
@Autowired
AccountRepository accountRepository;
@RequestMapping(value = "/accounts_mulcol_json", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
@ResponseBody
public String accountsMulColJSON() throws JsonProcessingException {
List<Object[]> accountsList = accountRepository.findAllAccount(Sort.by("accountNumber"));
List<SimpleAccount> simpleAccountList = new ArrayList<>();
如何将List<Object[]> 转换为List<SimpleAccount>?
【问题讨论】:
标签: java spring-data-jpa spring-data