정리노트/메모

24.09.26. 디버깅을 꼼꼼히 하자...

망고고래 2024. 9. 26. 19:08

커서가 DB에 접속할 때 계속 JPA를 사용해서 나도 얼떨결에 쓰게 됐다.

 

문제가 생기면 AI에 지나치게 의존하지 말고 어디가 문제인지 디버깅을 해야 한다...

디버거나 System.out.println()을 적극적으로 쓰자...

 

DB 관련 간단한 디버그(DB 접속 확인)

컨트롤러

    @PersistenceContext
    private EntityManager entityManager;

        try {
            Query query = entityManager.createNativeQuery("SELECT 1");
            query.getSingleResult();
            System.out.println("데이터베이스 연결 성공");
        } catch (PersistenceException e) {
            System.err.println("데이터베이스 연결 실패: " + e.getMessage());
        }

 

서비스

        try {
            Query nativeQuery = entityManager.createNativeQuery("SELECT COUNT(*) FROM e_blue.infr_ctnt_invn");
            int count = ((Number) nativeQuery.getSingleResult()).intValue();
            System.out.println("Native query count: " + count);

            if (count > 0) {
                Query dataQuery = entityManager.createNativeQuery("SELECT * FROM e_blue.infr_ctnt_invn", ContractListInfo.class);
                dataQuery.setMaxResults(1);
                List<ContractListInfo> result = dataQuery.getResultList();
                if (!result.isEmpty()) {
                    System.out.println("첫 번째 레코드: " + result.get(0));
                }
            }
        } catch (Exception e) {
            System.err.println("쿼리 실행 중 오류 발생: " + e.getMessage());
            e.printStackTrace();
        }

'정리노트 > 메모' 카테고리의 다른 글

객체를 요소로 가지는 Array에서 Set 만들기  (0) 2025.03.11
첫 코드 리팩토링  (0) 2024.11.07
240730 메모  (0) 2024.07.30
ClassNotFoundException 해결 방법(ContextLoaderListener)  (0) 2024.06.17
24.06.11. 노트  (0) 2024.06.11