JPA (5) 썸네일형 리스트형 Open Session In View - JPA OSIV(Open Session In View) OSIV(Open Session In View)는 영속성 컨텍스트를 뷰까지 열어두는 기능이다. 영속성 컨텍스트가 유지되면 엔티티도 영속 상태로 유지된다. 뷰까지 영속성 컨텍스트가 살아있다면 뷰에서도 지연 로딩을 사용할 수가 있다. ! JPA에서는 OEIV(Open EntityManager In View), 하이버네이트에선 OSIV(Open Session In View)라고 한다. 하지만 관례상 둘 다 OSIV로 부른다. 동작 원리는 다음과 같다. 클라이언트의 요청이 들어오면 서블릿 필터나, 스프링 인터셉터에서 영속성 컨텍스트를 생성한다. 단 이 시점에서 트랜잭션은 시작하지 않는다. 서비스 계층에서 @Transeactional로 트랜잭션을 시작할 때 1번에서.. jpa orderby - querydsl 사용 프로젝트 진행 중, 최신, 오래된, 조회수, 이름 순으로 클릭시 정렬이 이루어져야한다는 요구사항을 받았다. QueryDsl을 사용해서 해당 문제에 접근하니 처음에 어떻게 처리하지에 대한 답답한 부분이 있었으나 아래와 같은 방식으로 해결했다. 저와 같은 문제를 가지고 있는 분들은 참고하면 도움이 될것이다. private static Pageable getPageable(String collectionSort) { Pageable pageable = PageRequest.of(0,9, Sort.by("collectionId").ascending()); if ("latest".equals(collectionSort)) { pageable = PageRequest.of(0,9, Sort.by("collectio.. jpa 페이징 (블로그 추천) https://ivvve.github.io/2019/01/13/java/Spring/pagination_3/ 스프링 부트, JPA, Thymeleaf를 이용한 페이징 처리 3 - 페이징 구현 (서버) Entity는 생성했고 view도 어느정도 구색을 갖췄기 때문에 DB에서 데이터를 가져다 view에다 보내는 코드가 필요하다.이 프로젝트에서는 MyBatis와 같이 직접 쿼리를 작성하여 페이징 게시판을 개발하 ivvve.github.io 페이징 관련해서 정리가 잘 되어있는 블로그다. Pageable에 대한 기본 설명도 덧붙이고 있어서 많은 참고가 되었다. jpa - @Transaction - detach관련 saveNewAccount에저 save가 되었다... 안에서 트랜잭션 끝남...(안에서 persist 상태) 위에서 save가 끝난 account를 newAccount로 받음으로서 detach 상태가 되었다.. (트랜잭션 범위를 벗어난 상태) 그래서 saveNewAccount에서의 영속상태를 유지해서 mailchecktoken을 추가하려면 해당 메서드에 transaction을 걸어놔야한다.. 이객체는 detach 상태가 아니라 persist 상태가 유지된다... JPA 학습 (김영한) 1) NoArgsConstructor, AllArgsConstructor 관련 에러 requestBody에 json으로 매칭될 때 NoArgsConstructor 없이 AllArgsConstructor만을 객체에 선언해 줄 경우 컴파일러는 우선적으로 전체 필드를 가지는 생성자를 우선적으로 생성하기 때문에, 기본생성자를 필요로 한 경우에도 전체 필드를 가지는 생성되가 호출되면서 에러가 발생한다. No, All 생성자를 같이 사용해주는 것이 이러한 에러문제에서 자유로워질 수 있다. 2) Controller와 쿼리의 분리 update 후에 return 값을 member로 받아서 getId를 호출해되 되는데 그렇게 하지 않는이유 update후 entity의 값이 변경하고 그냥 끝내라.. 거기서 member를 리.. 이전 1 다음