JPA

들어가며 안녕하세요~! 오늘은 오랜만에 다시 JPA 관련한 내용으로 찾아왔습니다 ^-^ DB 를 운영하다보면 다양한 Id 생성 전략에 대해 고민을 하고 어떻게 설계할 것인가 에 대해 많은 고민을 하게 되는데요 오늘은 JPA Hibernate 에서 제공하는 Id generator 들에 대해 알아보는 시간을 가지도록 해볼게요 Id Generator 다양한 Id 생성을 위한 기능들을 제공하지만, 하나씩 들어가다보면 정말 종류가 다양하답니다. 오늘 우리가 탐구할 항목은 바로 @GeneratedValue Annotation 을 보려고 해요 public @interface GeneratedValue { /** * (Optional) The primary key generation strategy * that the..
들어가며 안녕하세요~! ㅎㅎ JPA 를 사용하면서 개발하던 도중에, 필요한 컬럼들에 대해서만 쿼리를 만들면 db 에 performance 성능향상이 이루어지지 않을까? 하는 의문심에 JPA 의 query statement 의 생성방식에 대하여 공부하고 있었는데요. 왜냐하면 불필요한 컬럼까지 update 하는 경우, index 걸린 column 같은 경우에는 성능에 악영향이 있기 때문입니다. 그래서 document 를 찾고 찾다보니 JPA 에서는 update / insert statement 를 만들어줄 때 statement 자체를 caching 하여 항상 일관된 query 문을 제공한다고 하는데요. 오늘은 JPA Hibernate 를 사용하면서 의문이 들었던 Query statement caching 이..
· 회고록
2021? 2021년은 저에게 있어서 새로운 스타트를 시작했고, 많은 것을 경험하게 해준 한해였습니다. 본격적으로 IT 서비스 회사에서 근무를 시작하게 되었고, 서비스에 대한 비즈니스 로직과 비즈니스를 제공하기 위한 기술에 대해 많은 것을 공부했었네요 새롭게 언어를 배웠던 kotlin 부터 시작해서 JPA Feign Vue3 .. 등 다양한 기술스택을 경험할 수 있었어요 기술스택에 대한 새로움도 있었지만 새로운 도메인을 파악하고 문제를 해결하기 위한 시도들도 많이 해본 한해였네요 와 너무 정신없었지만 드디어 끝났다 블로그에는 제가 도메인 관련한 내용들을 적을 순 없으니.. 개발자로써 비즈니스에 대한 해결방식과, 새롭게 배운 기술 스택에 대해 한번 회고하는 시간을 가져보도록 하겠습니다. 개발자에게 비즈니스..
안녕하세요 ㅎㅎ 오늘은 이제 Database 항목으로 다시 찾아오게 되었습니다.!! 실제 업무를 진행하다보면, 비즈니스 사항에 맞는 쿼리를 작성하는 경우가 정말 많은데요. 내가 작성한 쿼리가 올바른가? 이대로 production 코드에 반영해도 괜찮은가? 에 대한 의문을 해결해줄 수 있는 Query Plan 과 어떻게 Intellij 를 통해서 활용할 수 있는지 알아보겠습니다. 설명에 사용된 기술: Mysql, Mysql Container, Spring Data JPA Query Plan 이란? QueryPlan 의 정의는 Wiki 페이지에서 찾아볼 수 있는데요. SQL 관계형 데이터베이스 관리 시스템의 데이터 접근에 사용되는 순서에 대한 순서 집합 즉 우리가 만든 쿼리를 제출했을 때 어떤식으로 데이터 ..
영속성 상태란? 흔히 JPA 에서는 객체 상태를 영속성 상태라고 하는 기준에 의거하여 Hibernate가 객체를 관리하게 되는데요.. 핵심적인 상태는 총 3가지 입니다 Managed(persist) 상태 : 영속성 컨텍스트에 저장된 상태 Detached(clear, detach) 상태 : 영속성 컨텍스트에 저장되었다가 분리된 상태 = 준영속 상태 Removed(removed) 상태 : 삭제된 상태 영속 상태 조금 쉽게 코드로 이야기하자면, EntityManager에 의해서 관리되는 상태가 바로 영속성 상태입니다 em.persist(team) persist 메서드는 주로 JPARepository에서 save시 일어나게 되죠.! 준영속 상태 영속성 상태에서 벗어나서 영속성 컨텍스트가 관리하지 않으면 준영속 ..
huisam
'JPA' 태그의 글 목록