데이터베이스 방언
-dialect
라는 db를 persistance.xml에 등록해놓으면, h2 db를 사용한다고 지정해놓는 것.JPA 구동 방식
Persistance.xml 하위 db 관련 설정정보 설정 정보를 읽어와서 EntityManager를 생성한다.
<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" />-->
</persistence-unit>
</properties>
EntityManager는 여러 스레드에서 공유해서는 안된다.
JPA 변경은 모든 트랜잭션 안에서 실행해야 한다.
JPQL 소개(객체 지향 SQL)
em.find()
로 간단하게 찾을 수 있지만 복잡한 경우 사용한다.