뚜두뚜두
382
2018-10-16 20:06:14
6
1856

List<Object[]> 출력하는방법...


제가 jpa로 프로시저를 호출 후에 리스트를 받는데 도통 출력하는 방법을 모르겠네요 ..ㅠㅠ 도와주실수 있으신분 계신가요 



List<Object[]> list = query.getResultList();

일반적인 for문 으로 list.get(i) 로 받는 거 말구요 그걸로 받으면 그 뭐라고 하지 ..좌표값 ..? 오브젝트로만 나와서 실제 값을 출력하고싶습니다.

0
  • 답변 6

  • Aaron
    1k
    2018-10-16 21:39:14 작성 2018-10-16 21:40:35 수정됨

    이렇게 하면 되지 싶은 데요?

    좌표값 (메모리 주소)이 나오는 건 Object[] 를 찍으려고 해서 그런 게 아닐 까요?

    Array니까 for를 중첩해서 돌려야 할 것 같고요.

    출력하기 전에 원하는 type으로 형변환해서 찍으시면 될 것 같아요.

    for (Object[] objArr : list) {
        for (Object obj : objArr) {
            // 형 변환 후 출력
            System.out.println(obj);
        }
    }


  • 198
    2018-10-17 08:10:23 작성 2018-10-17 08:10:38 수정됨

    윗분말씀대로 해당 데이터의 원래 클래스에 맞게 형변환 해줘야하지 않을까요

    ToString이 구현되지 않은 클래스의 객체를 출력하려하면 

    주소값이 나오니까요


  • 뚜두뚜두
    382
    2018-10-17 09:11:45

    Aaron , / 오 대박.. 답변 감사합니다 ...  


  • 뚜두뚜두
    382
    2018-10-17 09:22:52
    근데 혹시 원하는 값을 출력 하고 싶으면 obj 를 Map 으로 변환 해야 할까요 ..? 
  • 198
    2018-10-17 09:49:42 작성 2018-10-17 09:56:52 수정됨

    뚜두뚜두

    hibernate 방식으로 예를 들면,
    List<Board> boardList = session.createQuery("from Board").list();
    이런식으로 해당 Data의 모델타입으로 맞춰주거든요.

    이런식으로 SimpleEntitiy에 데이터에 해당하는 모델을 넣어주면 되겠네여

    TypedQuery<SimpleEntity> q = 
            em.createQuery("select t from SimpleEntity t", SimpleEntity.class);
    
    List<SimpleEntity> listOfSimpleEntities = q.getResultList();
    for (SimpleEntity entity : listOfSimpleEntities) {
        // do something useful with entity;
    }

    이후에 해당 객체의 정보를 출력하고 싶으면
    entity.get~~~ 메소드를 쓴다든지
    ToString이 구현되어있으면 system.out.println(entitiy); 이렇게 할 수도 있겠네요

  • 뚜두뚜두
    382
    2018-10-17 10:12:10

     

    친절한 답변 감사드립니다. (_ _)

  • 로그인을 하시면 답변 을 등록할 수 있습니다.