대표사진
siaction
  1. 기본 카테고리

이미지

도서명 표기
JPA 퀵스타트
글쓴이
채규태 저
루비페이퍼
평균
별점10 (2)
siaction

따라가기 쉽게 잘 정리되어있어서, 책을 끝가지 마칠 수 있었습니다.



마지막 장은 좀 테스트 코드를 추가하면서 하면 좋았는데, 그렇게까진 못하였네요.. ㅠㅠ



연관관계 부분은 아리송한 부분이 있는데, 해깔리는 부분은 한번 더 읽어보려고 합니다.



책 잘 읽었습니다. 감사합니다.





 



 



 



개정판이 나온다면 희망 의견




  •  main 메서드 테스트 대신 JUnit으로 동작을 테스트하는 식으로 진행하면 좋을 것 같습니다.

    • 프로젝트 설정시 JUnit 4 또는 5가 기본 사용가능한 상태가 되어, 사용이 어렵지는 않을 것 같습니다.

    • 나중에 Scanner로 입력을 받는 예제가 등장하는데.. 이부분은은 JUnit5의 @ParameterizedTest 로 처리하긴했습니다.



  • Java 8 이상의 Lamda 식이나, 최신 날짜 클래스를 사용하면 좋을 것 같습니다

    • 책에서도 OpenJDK 13으로 사용하기 때문에, 적어도 Java 8의 기능을 사용하는 식으로 가이드가 되면 좋을 것 같습니다.

    • 하이버네이트 요즘 버전에서는 Java 8의 LocalDate, LocalDateTime을 그대로 사용할 수 있음.

    • * 반복 부분들을 람다 식으로 바꿔봐도 좋을것 같습니다.



  •  p362~365 까지 log4j 추가가 있는데, 아래 내용이 들어가거나 변경되면 좋을 것 같습니다.

    • log4j2 slf4j기반으로 가이드가 되면 좋을 것 같음

    • 로거 이름을 org.hibernate.type 까지보다는 org.hibernate.type.deor.sql.BasicBinder 까지 지정하고 레벨을 TRACE 로 유지했을 때, 바인딩로그만 보여서, 괜찮긴 했던 것 같습니다. 이부분 먼저 알려주셔도 좋을 것 같습니다.



  • p471 :부서정보가 없는 직원을 검색하는 것에 대해서는, dept(s_dept)에 대한 fetch 없이 s_emp.dept_id 가 NULL인 것만 확인하면 되기 때문에, 일부러 FETCH문을 포함할 필요가 없을 것 같습니다.

  •  p490 : trim 함수 사용부분에 Character.valueOf('부')로 되어있는데.. '부'로만 써도 될 것 같습니다.

  • p495 : 컬렉션 함수 이용하기 도입부 설명에서 GROUP BY 절과 HAVING 절을 이용했다고 적혀있는데, 실제로 JOIN하고 서브쿼리로 쿼리가 실행되어서, 조금 설명이 해깔리는 것 같습니다.

  •  p526 ~ 529

    • failed to lazily initialize a collection of role 관련 예외에 대해서,  부서 조회후 트랜젝션이 끝난 상태에서, 거기에 속한 직원을 조회하려해서 저런 예외가 난 것 같습니다.

      부서 조회와 내부의 직원 컬렉션을 조회하는 부분을 트랜젝션 범위에 둔뒤에 실행할 때는 예외가 발생하지 않았습니다.

      부서가 소유한 직원컬렉션을 EAGER 전략으로 사용하는 것외에도 트랜젝션 관련 설명이 추가되면 좋을 것 같습니다.



  • 마지막 9장의 마크업

    • 단순하기 때문에, HTML5 기반에 스타일도 단순하게 인라인으로 집어넣어 예제를 만들어주셔도 좋을 것 같습니다.

      저는 진행하면서 HTML5에 인라인 css로 바꾸거나하였어요.



  • 진행을 Gradle로 했었는데, 괜찮아보였습니다.Gradle로의 빌드도 한번 검토해주셔도 좋을 것 같습니다.



정오표 




  •  p175 : 동기화 잡업 -> 동기화 작업

  • p470 :

    • le(), lessThanOrEqualTo() 항목

    • 메서드는 맞는데, 값만 25400.00 에서 121500.00 으로 변경필요.

    • lessThan() 항목

    •  builder.graterThan(emp.<Double>.get("salary"), 25400.00) -> builder.lessThan(emp.<Double>.get("salary"), 121500.00)



  •  p474 : 주석 부분에서  AND emp.salary >= 5000/00 의 우변 값 부분을 35000.00 으로 변경

  • p507 : 공퉁으로 -> 공통으로

  • p609, p636, 637 : 영속성 유닛 설정 이름 부분 "RubbyShopping" -> "RubyShopping", "RubbyShoppingClient" -> "RubyShoppingClient"

    • rubby 란 단어가 알콜중독자란 뜻이 있어서 고치는게 나을 것 같습니다.



  • p618 : reduceStock 함수에서 'if (quantity < 0)' 조건에 this를 붙여야함. this를 붙이지 않으면 파라미터 값을 사용해서 항상 양수가 되어,

    재고 수량 부족에대한 처리가 오동작함.

  • p624 : Hibernate 쿼리실행결과에서, Item엔티티의 테이블 명을 S_ITEM으로 설정했다면..  Item 엔티티의 테이블 생성구문, 외래키 설정 구문에 나타난 테이블 이름 들이 S_ITEM으로 나와야할텐데, S_ORDER_PRODUCT 로 표시되어있습니다.



 



기타




  • Gradle

    • Windows 8.1 과 Gradle 6.4.1 이상에서 빌드 문제가 있음.

    • 빌드시 계속 데몬을 실행시켜, Java프로세스가 무한정 늘어남..

    • 6.4 버전까지는 이슈 없음.



  • IntelliJ

    • JPA Console로 SELECT조회하면 persistence.xml의    hibernate.hbm2ddl.auto=create 설정을 다시 읽어서 조회를 하는지?    DB의 데이터가 삭제됨

    • DB에서 S_EMP와 S_DEPT를 제거하고 JPA Console로 Employee를 조회했을 때, 테이블이 생기는것을 확인함, 그동안 못느꼈던 원인은 아마도 update되어있던 상태였태 였었을 것 같습니다..



  • MyBatis 파트는 SqlSession만 만들어서 아래 /mybatis-dynamic-sql 라이브러리로 테스트

    • https://mybatis.org/mybatis-dynamic-sql/docs/quickStart.html 




좋아요
댓글
0
작성일
2023.04.26

댓글 0

빈 데이터 이미지

댓글이 없습니다.

첫 번째 댓글을 남겨보세요.

siaction님의 최신글

  1. 작성일
    2024.12.28

    좋아요
    댓글
    0
    작성일
    2024.12.28
  2. 작성일
    2024.10.17

    좋아요
    댓글
    0
    작성일
    2024.10.17
    첨부된 사진
    20
  3. 작성일
    2024.9.19

    좋아요
    댓글
    0
    작성일
    2024.9.19
    첨부된 사진
    첨부된 사진
    20

사락 인기글

  1. 별명
    리뷰어클럽공식계정
    작성일
    2025.4.24
    좋아요
    댓글
    240
    작성일
    2025.4.24
    첨부된 사진
    첨부된 사진
    20
  2. 별명
    리뷰어클럽공식계정
    작성일
    2025.4.25
    좋아요
    댓글
    223
    작성일
    2025.4.25
    첨부된 사진
    첨부된 사진
    20
  3. 별명
    사락공식공식계정
    작성일
    2025.4.23
    좋아요
    댓글
    81
    작성일
    2025.4.23
    첨부된 사진
    첨부된 사진
    20
예스이십사 ㈜
사업자 정보