SpringBoot(14)
-
[JPA] 플러시란 무엇일까?
플러시 영속성 컨텍스트의 변경내용을 데이터베이스에 반영하는 것 플러시가 발생하면? 변경 감지(Dirty Checking) 수정된 엔티티 쓰기 지연 SQL 저장소에 등록 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송(등록, 수정, 삭제 쿼리) 영속성 컨텍스트를 플러시하는 방법 em.flush() - 직접 호출 트랜잭션 커밋 - 플러시 자동 호출 JPQL 쿼리 실행 - 플러시 자동 호출 트랜잭션이 커밋하기 이전에 데이터베이스에 반영되는지 확인하고 싶다면 em.flush()를 실행해 강제 호출 가능 JPQL 쿼리 실행시 플러시가 자동으로 호출되는 이유 em.persist(member1); em.persist(member2); em.persist(member3); query = em.createQuery..
2023.03.25 -
[JPA] 영속성 컨텍스트에 대해 파해쳐보자!
JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기 영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어 "엔티티를 영구 저장하는 환경"이라는 뜻 영속성 컨텍스트는 논리적인 개념으로 눈에 보이지 않는다. 엔티티 매니저를 통해 접근 EntityManager.persist(entity); 엔티티 매니저 팩토리와 엔티티 매니저 데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 엔티티 매니저 팩토리를 하나만 생성하고 필요에 따라 엔티티 매니저를 생성한다. 엔티티 매니저 팩토리: 여러 스레드가 동시에 접근해도 안전하기 때문에 서로 다른 스레드 간의 공유가 가능하다. 엔티티 매니저: 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 스레드 간 공유가 일어나서는 안된다. 엔티티의 생명주기 비..
2023.03.25 -
[JPA] JPA란?
객체 지향 언어와 관계형 데이터베이스를 뗄 수 없는 관계이다. 그러나 이 두 가지의 패러다임은 너무 다르다. 객체 CRUD와 데이터 베이스의 CRUD부터 다르다. 객체의 필드가 하나 추가되게 된다면 데이터 베이스의 SQL문도 재작성해야 하는 상황이 생기기도 한다. 우리는 데이터베이스를 사용하기 위해 반복적이고 지루한 코드를 지속적으로 작업하게 된다. 또한 자바 객체를 SQL로 변경하고 SQL을 자바객체로 변경하는 작업도 진행해야 한다. 객체와 관계형 데이터베이스의 차이 상속 연관관계 데이터 타입 데이터 식별 방법 상속 객체는 상속이 가능하지만 데이터베이스에는 상속이란 개념은 없고 테이블의 슈퍼타입과 서브타입 관계만 존재한다. 만약 객체에서 상속을 표현했다면 데이터베이스에서 이를 표현하기 위해 DAO에 외..
2023.03.25 -
org.springframework.web.context.support.XmlWebApplicationContext
에러 코드 게시판 프로젝트를 만들기 위해 자바 기본 설정을 다 끝냈고, 게시판 리스트를 출력하기 위해 Mapper, Service, Controller, jsp까지 다 작성했다. 근데 서버를 돌리자 마자 에러가 발생했다. WARN : org.springframework.web.context.support.XmlWebApplicationContext WARN : org.springframework.web.context.support.XmlWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedD..
2022.10.03 -
nested exception is java.lang.IllegalStateException: Optional int parameter 'bookId' is present but cannot be translated into a null value due to being declared as a primitive type.
스프링 에러 처음 보는 에러 코드 SEVERE: 경로 []의 컨텍스트 내의 서블릿 [appServlet]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is java.lang.IllegalStateException: Optional int parameter 'bookId' is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive t..
2022.09.25 -
org.springframework.beans.factory.UnsatisfiedDependencyException..{@org.springframework.beans.factory.annotation.Autowired(required=true)}
오늘의 에러 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'replyController': Unsatisfied dependency expressed through field 'replyService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.shop.service.ReplyService' available: expected at least 1 bean which qualifies as autowire candi..
2022.09.24