JPA 6

[Error] JPA 테이블 생성 중 ORDER 테이블 : drop table if exists [*]order CASCADE 오류

Spring 2.7.15 에서 H2 db 사용 중 JPA가 "ORDER"테이블 생성만 실패 spring: h2: console: enabled: true path: /h2 datasource: url: jdbc:h2:mem:test jpa: hibernate: ddl-auto: create # (1) 스키마 자동 생성 show-sql: true # (2) SQL 쿼리 출력 대충 sql에서 drop도 안되고, 나중에 가면 alter도 안되고,, 여튼 테이블 생성부터 문제가 있는 상황 org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "drop table if exists order CASCADE " via JDBC S..

(review2) Spring 구성하기(Controller - Serivce - Repository) #Day12

spring으로 prj 시작 시 구성 순서 1. 프로젝트 생성 H2는 필요없으면 제거 사용시 application.yml 설정 필요 H2(메모리DB) 웹 콘솔: http://localhost:8080/h2 Mapper 는 필요 시 추가 객체를 JSON 포맷으로 변환 : Gson 뷰 구현 시 타임리프 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' co..

Spring Data JPA #Day10

Spring Data JPA JPA : Java 에서 RDB를 사용하기 위해 정해 놓은 표준 스펙(명세) Hibernate ORM : JPA 구현체. 실제 사용하는 API Spring Data JPA : Hibernate ORM을 Spring에서 더 쉽게 사용할 수 있도록 해주는 모듈 java-rdb (ORM) 매핑하기 : @Entity (@Column @Id 등 관계설정) Repository 인터페이스 구현 기본 메서드(CRUD 등)은 Spring data JPA에서 기본으로 제공 extends JpaRepository 커스텀 메서드(쿼리)만 인터페이스 내에 작성 → 쿼리는 jpa에서 변경해줌 JPQL 객체 지향 쿼리 사용 : 엔티티 클래스의 객체를 대상으로 객체를 조회 → 쿼리 처리는 jpa에서 함 ..

Spring Persistence(DataAccess) Layer : JPA 예제(ORM : 엔티티 간 관계) 3/3 #Day9

ORM(Object Relationa Mapping) : 자바와 RDB 간에 매핑을 위해 관계 설정이 필요 1. 객체와 테이블 간의 매핑 2. 기본키 매핑 3. 필드(멤버 변수)와 열 간의 매핑 4. 엔티티 간의 연관 관계 매핑 등 1. 객체(entity)와 테이블(table) 간의 매핑 (필수 class 앞) @Entity : JPA 관리 대상 엔티티 명시 (옵션 class 앞) @Table(name="name") : 엔티티와 매핑할 테이블 설정(default : 클래스이름 = 테이블이름) (필수 field 앞) @Id : 식별자 역할을 하는 필드(멤버 변수) (권고 field 앞) @GeneratedValue(strategy = GenerationType.IDENTITY) : PK 생성 전략 기본 생..

Spring Persistence(DataAccess) Layer : JPA 예제 2/3 #Day9

JPA 사용하기 1. spring 의존성 추가(build.gradle) spring data jpa 추가 메모리 db : h2 추가 dependencies { .. implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.h2database:h2 } 2. JPA 설정(application.yml) spring: h2: console: enabled: true path: /h2 datasource: url: jdbc:h2:mem:test jpa: hibernate: ddl-auto: create # (1) 스키마 자동 생성 show-sql: true # (2) SQL 쿼리 출력 3. 엔티티 임을 명시 → J..

Spring Persistence(DataAccess) Layer : JPA 개념 1/3 #Day9

spring layer의 마지막 DB와 통신하는 DataAccess Layer. @Controller @Service @Repository : DataAcessLayer(Persistence) - JPA spring에서 권장하는 db통신 기법 JPA(Java Persistence API, Jakarta Persistence) Java진영에서 사용하는 ORM 기술의 표준 사양(java interface) → 구현체는 따로 있음 JPA 구현체 : Hibernate ORM, EclipseLink, DataNucleus 등 ORM : Object(=자바)-relational(=RDBMS) mapping db통신을 할 수 있는 java제공 도구(db통신을 자바스럽게 하게 도움을 줌) db↔ JDBC ↔ (hibe..