JPA 설정하기
- Web/Spring
- 2023. 8. 21.
출처: 김영한 강의
https://www.inflearn.com/course/ORM-JPA-Basic/dashboard
JPA의 버전 맞추기
<!-- JPA 하이버네이트 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.6.15.Final</version>
</dependency>
<!-- H2 데이터베이스 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.2.220</version>
</dependency>
23. 08. 19. 기준 JPA를 사용하기 위한 POM.XML의 설정입니다.
JPA를 사용하기 위해서는 Hibernate와 사용할 DB의 Version이 필요합니다.
다만, 라이브러리의 버그가 존재하여 Version은 강의를 기준으로 하는 것보다는 현재 설치하는 시점의 버전이 제일 우선적인 것을 추천드립니다.
버전은 사용하시는 DB의 버전을 기준으로,DB의 버전에 근접한 hibernate버전으로 맞추시면 됩니다.
과거의 버전을 사용하여도, JPA의 간단한 사용에는 문제가 없었으나 JPA의 기술 중 하나인 TABLE DROP이 동작되지 않는 BUG가 발생되었습니다.
🐛 이를 해결하기 위해서는 아래의 링크를 참고 부탁드리겠습니다.
2023.08.20 - [Web/Spring] - SQL Error: 23505, SQLState: 23505 - JPA 사용 도중
persistence.xml 설정하기
resources디렉터리 아래에 'META-INF' 디렉터리를 생성하시면 됩니다.
만약, 없을 경우, 개인적으로 생성해도 문제가 없으니 해당 경로 밑에 persistence.xml이 설치되어 있으면 됩니다.
persistence.xml 내용
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
<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"/>
<!-- 쿼리가 Member를 Insert한 것을 알려준다. -->
<property name="hibernate.use_sql_comments" value="true"/>
<!--<property name="hibernate.hbm2ddl.auto" value="create" />-->
</properties>
</persistence-unit>
</persistence>
DB의 접속기록을 저장합니다.
사용하는 DB가 다를 경우, 설정 또한 달라질 수 있습니다.
✔️ 위의 속성이 제대로 된 것을 확인되었다면!
//Presistence.xml의 설정을 가져온다.
EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
EntityManager em = emf.createEntityManager();
//Transaction을 가져온다.
EntityTransaction tx = em.getTransaction();
tx.begin();
Java에서 해당 라이브러리를 import 할 수 있게 됩니다.
만약 해당 코드를 제대로 import가 되지 않았다면, 다시 설정하셔야 합니다.
반응형
'Web > Spring' 카테고리의 다른 글
[Spring] Eclipse에서 SpringFrameWork 프로젝트 만들기 (0) | 2024.05.06 |
---|---|
SQL Error: 23505, SQLState: 23505 - JPA 사용 도중 (0) | 2023.08.20 |
[Spring] DAO와 MyBatis 연결 (0) | 2023.01.21 |
[Spring] MyBatis의 ResultMap (0) | 2022.10.29 |
[Spring, MyBatis Error] out of range value column 에러처리 (0) | 2022.10.03 |