# Hello JPA 프로젝트 생성

* H2 DB 접속 장애시\
  로컬 호스트나 127.0.0.1:8082로 접속
* 라이브러리 버전 설정할 때\
  Spring 홈페이지 > Projects > Spring Boot > Learn > Documentation > Reference Doc > org.hibernate 검색하면 현재 스프링 부트와 연동되있는 hibernate 버전 나옴!
* 라이브러리 추가 - pom.xml
* JPA 설정하기 - persistence.xml\
  \&#xNAN;**- JPA 설정 파일**\
  **- /META-INF/persistence.xml 위치⭐️ (resources 하위에 META-INF 디렉토리 생성!)**\
  **- persistence-unit name으로 이름 지정**\
  **- javax.persistence로 시작: JPA 표준 속성**\
  **- hibernate로 시작: 하이버네이트 전용 속성**

persistence.xml 살펴보기

1. 필수 속성 - DB 설정\
   jdbc.driver : h2.Drive = .H2 DB 사용할 것이고\
   username과 password 정보, H2 DB에 연결하는 JDBC URL\
   hibernate.dialect : H2Dialect\
   **dialect란? SQL 표준을 지키지 않는 특정 데이터베이스만의 고유한 기능**

   \=>DB마다 사용하는 SQL이 조금씩 다른데 이 때 H2를 사용하겠다는 설정!

   하이버네이트는 40가지 이상의 데이터베이스 방언 지원
2. 옵션\
   hibernate.show\_sql (true): sql 출력\
   hibernate.format\_sql (true): sql 을 포맷에 맞게 정렬\
   hibernate.usesqlcomments (true): sql 주석 설명 출력

```markup
<persistence-unit name="hello">
    <properties>
        <!-- 필수 속성 -->
        <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
        <property name="javax.persistence.jdbc.user" value="sa"/>
        <property name="javax.persistence.jdbc.password" value=""/>
        <property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/>
        <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
        <!-- 옵션 -->
        <property name="hibernate.show_sql" value="true"/>
        <property name="hibernate.format_sql" value="true"/>
        <property name="hibernate.use_sql_comments" value="true"/>
        <!--<property name="hibernate.hbm2ddl.auto" value="create" />-->
    </properties>
</persistence-unit>
```
