IT

JPA

MultipleBagFetchException과 default_batch_fetch_size

Class User{ @OneToMany List orderList; @OneToMany List couponList; } Class Order{ ... } Class Coupon{ ... } 위와 같은 구조에서 User의 두 가지 OneToMany인 order정보와 coupon정보를 한번에 모두 가져와야하는경우 fetch join으로 한번에 가져오거나 혹은 둘 다 Eager를 설정하는등의 방법이 생각난다. 하지만 JPA 입장에서 생각을해보면 애매해진다. 먼저 일반적인 OneToMany fetch조인의 동작방식을 생각해보자 1. jpql을 SQL의 join문으로 변경되서 DB에서 실행됨 2. DB에서 row단위로 NxM개의 row가 JPA에 전달됨 3. JPA는 전달받은 데이터를 각 엔티티의 id를 기반..

JPA

LazyInitializationException- no session(준영속상태에서의 참조)

LazyInitializationException : 준영속 상태의 엔티티에 지연로딩을 시도했을때 발생하는 exception LazyInitializationException에 대해 이해하기 위해서는 일단 영속성 컨텍스트와 Hibernate의 메커니즘에 대해 이해하고 있어야 한다. 아래 코드의 동작방식을 영속성 컨텍스트에 대입해서 생각해보자 EntityManager em = emf.createEntityManager(); em.getTransation().begin(); User user = new User(); user.setId(1L); user.setName("myname"); user.setPhone("01012341234"); em.persist(user); System.out.println(u..

JPA

JPA :: 영속성 컨텍스트

영속성 컨텍스트 : 엔티티를 영구 저장하는 환경 예제 1. insert 로직에서의 영속성과 1차 캐시 아래 예제는 모두 하나의 Transaction안에서만 유효함 /// 1. 비영속 상태 ( 영속성 컨텍스트와 전혀 관계없는 상태) User user = new User(); user.setId(1L); user.setName("myname"); user.setPhone("01012341234"); /// 2. 영속 상태 (영속성 컨텍스트에 포함되면서 영속상태가 됨) EntityManager em = emf.createEntityManager(); em.getTransation().begin(); em.persist(user); /// 3. 1차 캐시에서 조회 /// - 영속성 컨텍스트안에서 움직였던 데이터..

기타

GDG Korea Webtech 천하제일 코딩대회 회고

1. 정말 오랜만의 해커톤 개발할때든 취미생활이든 난 일단 내 분수에 맞지 않은 거대한 목표를 정한다. 그리고 어떻게든 이뤄내기 위해 나아가는 과정에서(가끔은 몸을 혹사시키면서까지...) 많은 성장이 이뤄지고 거의 만족할만한 목표에는 도달했었다. 오래전 참가했던 마지막 해커톤도 입상을 목표로 엄청난 리소스를 투자했는데 입상에 실패하면서 소위말하는 "현타"가 왔다. 그리고 마지막 해커톤이 되었다. 그러고 Festa에서 천하제일 코딩대회를 보고 하루에 끝난다길래 그냥 무심결에 참가하게 되었다. 2. Google for Startups Google for Startups에서 진행됐고 이런곳이 생겼다는 뉴스만 보고 직접 가본적은 처음인데 뭔가 요즘 많은 co-working space 같기도하면서 Google f..

Javascript

JavaScript 기본다지기

Hoisting JavaScript에서 변수선언과 동시에 할당할경우 선언과 할당으로 분리된다. 이때, 분리되면서 선언부분은 해당 유효범위의 최상위로 호이스트된다. function myFunc(){ console.log(value); //아예 Exception이 일어나야할거같지만 undefined가 나타난다. //하단의 코드가 선언과 할당으로 분리되고 선언부분이 최상위로 호이스트됐기 때문이다. var value = 'myFunc value'; //호이스트됐기때문에 위 코드는 할당역할만 한다. console.log(value); //할당됐기때문에 myFunc value 출력된다. } Scope JavaScript에서의 유효범위를 뜻한다. JavaScript는 Scope를 통해 어디에서 어디변수에 접근가능한지..

코비코비
'분류 전체보기' 카테고리의 글 목록 (3 Page)