反汇编数组中的对象

时间:2018-01-14 23:27:22

标签: java arrays spring spring-boot spring-data

我在数据库中有一个搜索方法,它带来了以下结果:

enter image description here

如你所见,在Object [4]里面出现了另一个包含People,Pessoas和PessoasEnderecos的数组以及更多与Pessoas有关系的对象。

我希望它只返回这种方式而不是现在正在发生的另一个数组中,它应该如下所示:

elementData=Object[10](id=144)
[0]=Pessoas(id=166)
[1]=PessoasEnderecos(id=167)
...  

我有这个方法:

@RequestMapping(method = RequestMethod.GET, value = "/pessoas")
    public ResponseEntity<Collection<Pessoas>> buscarPessoas(HttpServletRequest request) throws  Exception { 

        String idEntidadeCrypt = request.getHeader("DataBase");
        Long idEntidade = Long.parseLong(Crypto.decode(idEntidadeCrypt));

        Collection<Pessoas> pessoasBuscados = pessoasService.buscarFiltro(idEntidade);
            return new ResponseEntity<>(pessoasBuscados, HttpStatus.OK);
    }  

和:

@Repository
public interface PessoasRepository extends JpaRepository<Pessoas, Integer> {

    @Query( value="select pes, pEnd, pFis, pJur "
            + "from "
            + "Pessoas pes, "
            + "PessoasEnderecos pEnd,"
            + "PessoasFisicas pFis,"
            + "PessoasJuridicas pJur"           
            + " where  "            
            + "pes.entidade.idEntidade = pEnd.entidade.idEntidade "
            + "and pes.idPessoa = pEnd.pessoa.idPessoa "
            + "and pes.entidade.idEntidade = pFis.entidade.idEntidade "
            + "and pes.idPessoa = pFis.pessoa.idPessoa "
            + "and pes.entidade.idEntidade = pJur.entidade.idEntidade "
            + "and pes.idPessoa = pJur.pessoa.idPessoa "
            + "and pes.entidade.idEntidade = :parametroId " )
    public  Collection<Pessoas>  encontrar(@Param("parametroId") Long usuarioEntidade); 

我该如何解决?

1 个答案:

答案 0 :(得分:0)

ArrayList<>不适用于魔术,它有实际的实现。 elementData是存储其元素的数组。正如您所看到的(这是上一句中的链接),它是该类的私有成员,因此您不与它进行交互,但是您在调试器中看到它,因为它存在。
如果您想要返回数组而不是List,则可以始终使用所有List实现的toArray()