KDT/TIL

221031 (월) JPA1 - 미완

imname1am 2023. 1. 22. 23:38
반응형

[복습]

<oBootJpa01>

application.properties = pom.xml

 

포트 번호

 

JPA         MyBatis

domain = DTO

 ㅣ

엔티티

(@Entity)

 

 

DI: 셋팅 작업 Injection (Annotation)

구현체 @Repository 가 스프링 컨테이너에 Bean으로 등록하고 (= DAO)

@Controller에서 @Autowired 하면 서비스랑 알아서 연결

 

레포지토리 선언 방법

1) 컨스트럭터 - 한 번 연결하면 바꿀 일 X.

2) 세터

 

JPA

@Transactional 안 쓰면 쓰지 못 함, (@Service에 거는 것 권장)

 

Table 명이 빠지면 객체명하고 이름이 같음 (default)

@Id : PK 설정. 없으면 테이블 취급 안 함.

 

저장 메소드 em.persist

조회할 때는 JPQL (em.createQuery) - Member은 테이블이 아니고 객체다.

결과를 리스트 형태로 받겠다 => .getResultList();

 

<oBootJpa02>

create : 초기 만들 때만 / none : 데이터 유지

 

@

 

 

Get : 조회

Post : 입력 조회 삭제

 

03.Jpa -> 성능 관리

9:35-9:50졸았다

 

 

Controller -> Service -> Repository

 

 

thymeleaf 문법

[찐범위] 10:38AM ~

- 회원 검색

 


- 회원검색 id 큰 것, 회원검색 급여 큰 것

왜 또 안되냐...


src/test/java > com.oracle.oBootJpa02 > 

 

@SpringBootTest : 스프링 부트 띄우고 테스트 (이게 없으면 @Autowired 다 실패)

반복 가능한 테스트 지원, 각각의 테스트를 실행할 때마다 트랜잭션을 시작하고

테스트가 끝나면 트랜잭션을 강제로 롤백 (이 어노테이션이 테스트 케이스에서 사용될 때만 롤백)


oBootJpa03

야믈 (YAML)

application.yml에 이렇게 작성하고 application.properties 삭제 (대체)

server:
  port : 8385
  
# Oracle Connect
spring:
  datasource:
    url: jdbc:oracle:thin:@localhost:1521/xe
    username: scottjpa
    password: tiger
    driver-class-name: oracle.jdbc.driver.OracleDriver
    
  # JPA Setting
  jpa:
    hibernate:
      ddl-auto: none  # none create
    properties:
      hibernate:
      show-sql:   true    # System.out에 하이버네이트 실행 SQL
      format_sql: true

FK가 있는 곳이 Owner다?!

 

하는 쪽이 Embedded

EnumType.STRING으로 해줘야 함!!!

 

연관관계의 주 역할을 가진 쪽이 Owner 역할을 한다.

반응형