본문 바로가기

Java/Spring14

[Spring data JPA] 조회: Entity + 연관 Entity(LAZY) + Pageable 기준: springboot 2.4.4 1:N (Team: Member) *주의!! @EntityGraph가 뭔가 새로운 것인줄 알았는데, 결국 내부 로직은 fetch이다. 엔티티, 연관엔티티 모두 한번에 조회를 하고 싶고, Page기능까지 추가하고 싶다. (뷰를 위한 rest api에서는 page기능은 필수이다. 그리고 대부분 엔티티 단위로 조회를 할 것이다.) 시도1. inner join fetch + Pageable 에러.. query specified join fetching, but the owner of the fetched association was not present in the select list................ 안되는줄 알았지만 그냥 해봤다... 시도2. @EntityG.. 2021. 4. 24.
[Spring data JPA] native query + XML + DTO 기준: springboot 2.1.9 JPA를 사용하는 이유가 객체지향적인 설계와 개발 생산성을 위함인데, 왜 String을 여러라인으로 붙여 쓰고 있지? + + + + + + 왜 SQL 결과를 Object[]로 받는 방법을 사용하는지 이해가 안된다. (다시 10년전 과거로 돌아간 기분이다...) ResultMapping을 어노테이션으로 잡다하게 설정하는게 과연 Mybatis에서 JPA로 탈출한 취지에 맞는가? String 여러 라인을 붙여쓰거나 리턴으로 Object[]로 받을거면 그냥 Mybatis 쓰는게 낫겠다. * multiLine String은 XML로... * Object[]은 Dto로 해결... native query + XML + DTO org.example.api.dto.NativeDto1.. 2021. 4. 24.
JPA 씹어먹기 기준: springboot 2.1.9 "자바 ORM 표준 JPA 프로그래밍", 김영한님의 책은 놀랍다. 1번 읽고 느낀점: JPA에 무작정 뛰어들면 안되는구나. 개념없이 맨땅에 헤딩하면, 많은 시간을 낭비할 것 같다.(한번 시도했다가 수많은 에러만 만났다.) JPA는 정석대로 배우는게 좋겠다. 한번 읽고, 다 정리가 안되어서, 두번 읽고, 실습하고, 나름대로 정리를 해본다. 초판은 2015년. 현재는 2021년. 꽤 많은 세월이 흘렀음에도 대적할만한 책이 없다. 책을 읽으면서 주의할 점은 Spring Data JPA가 지원하는 기능 JPA가 지원하는 기능 하이버네이트가 지원하는 기능이 조금씩 다르다. 이 부분을 비교해가면서 읽어야 나중에 혼란이 없다. * 영속성 컨텍스트(1차 캐시)는 1회성이다. 트랜잭.. 2021. 4. 19.
springBoot2 jpa Test Errors jpa 시작해보기 > 아주 기본만 익히고, 일단 실습. 필요한 것은 그때그때 찾아본다. ==> JPA 1회독 하고, 다시 이 글을 보니... 참... 맨땅에 삽질했구나싶다. 결국 기본부터 다시 보게 된다... 개발환경 java 1.8 springboot 2.1.9 gradle 4.10.2 1. 패키지명을 java.orm.jpa로 해서 Application.java를 실행하면, 다음 에러 발생 누가 패키지명을 java로 시작하나-_-' --------------------------- Java Virtual Machine Launcher --------------------------- Error: A JNI error has occurred, please check your installation and.. 2021. 4. 5.
[spring을 spring 답게] net.sf.log4jdbc.sql.jdbcapi.DriverSpy net.sf.log4jdbc.sql.jdbcapi.DriverSpy 를 사용하는 경우 다음과 같은 메시지가 출력된다. Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary. 아마도 custom.spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver 대신 custom.spring.datasourc.. 2020. 3. 28.
Memory usage is low, parachute is non existent, your system may start failing console 로그 : Memory usage is low, parachute is non existent, your system may start failing >> 평소에 잘 작동하던 SpringFramework에 jRebel을 적용했더니, 서버기동하고, 일부 페이지 접속시 다음에러가 발생하면서 서버가 멈췄다. 메모리 문제인듯 하다. 변경전SpringFramework compile : jre 1.7Tomcat v8 (jre1.7) ---> 변경후SpringFramework compile : jre 1.7Tomcat v8 (jre1.8) 로 바꾸니 잘된다...-_-;; 왜 그럴까? 2017. 10. 25.