목록JPA (14)
seong
OSIV(Open-Session-in-View) 란? Persistenct Context(영속성 컨텍스트)를 뷰까지 열어두는 기능이다. 영속성 컨텍스트가 유지되면 엔티티도 영속 상태로 유지된다. 뷰까지 영속성 컨텍스트가 살아있다면 뷰에서도 지연 로딩을 사용할 수가 있다. 이렇게 되면 DB연결이 View까지 되어서 View에서 내가 의도하지 않은 데이터를 불러오는 이상한 현상이 발생할 수도있다. Open-Session-in-View : True 일 경우 1. 클라이언트의 요청이 들어오면 첫번째로 Filter를 거쳐서 들어온다. 2. 필터를 거쳐서 들어온 요청은 DS로 가서 Controller로 가는데 Filter를 통해 들어오면 바로 DB가 연결이 된다 . 3. 그럼 이때부터 SELECT가 가능하다. 단 ..
JPA와 Hibernate Hibernate는 JPA의 구현체중 일부이다. 이전까지 MyBatis를 사용해 DB를 관리했었다. 하지만 JPA에서는 Hibernate를 통해 DB를 관리할 것이다. 기존의 MyBatis에서는 Dao 전략을 사용 했지만 JPA에서는 EntityManager를 사용한 Repository전략을 사용 한다. Mybatis와 구조는 거의 대부분 비슷하다. 다른점이 하나 있다면 Persistence Context가 생겼다. 1. 클라이언트가 요청을 진행 하면 Service에서 Transaction이 발동된다. 2. Repository에서는 요청(Request)이 들어온 객체를 DB에 바로 전달 하지 않고 PC(Persistence Context)에 저장해두게 되고 요청에 대한 응답(R..
마리아 디비는 시퀀스 전략이 없다. 하지만 DB에서 오토 시퀀스가 필요하다. 그래서 적용을 하는 부분이다. IDENTITY는 해당 DB의 전략을 따라가게된다. @GeneratedValue(strategy = GenerationType.IDENTITY) package site.metacoding.white.domain; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import lombok.Getter; import lombok.Setter..
1. 자바 코드로 테이블 생성 package site.metacoding.white.domain; import java.sql.Time; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import lombok.Getter; import lombok.Setter; @Setter @Getter @Entity public class Board { @Id // PK @GeneratedValue // Auto INCREMENT private Long id; private String title; @Column(lengt..
1. MVN Repository로 가서 MariaDb 검색 2. 버전은 아무거나 클릭 한다 - 이유는 아래 설명 3. Vs 코드에서 복사해 넣고 수정 아래 다른것들을 보면 형식이 다르다 . Vs툴에서 "group : 이름" 으로 자동 설정 해주고 Version은 알아서 맞추어준다. 방금 복사한 Maria도 똑같은 형식으로 맞춰준다 . 4. 제대로 적용이 됬는지 확인하기 왼쪽바에 코끼리 형상 선택 (Gradle) 5. yml Maria설정 url: jdbc:mariadb://127.0.0.1:3306/"사용할DB의 이름" username: user이름 password: user패스워드 server: port: 8000 servlet: context-path: / spring: datasource: url:..
1. STS의 propertis > yml로 변경 yml은 propertis보다 경량화가 되어 있고, 실제 만들었을때 가독성이 좋다. 2. yml 설정 server: port: 8000 servlet: context-path: / spring: datasource: url: jdbc:h2:mem:test driver-class-name: org.h2.Driver username: sa password: h2: console: enabled: true jpa: hibernate: ddl-auto: create output: ansi: enabled: always logging: level: root: DEBUG