전에 했던 내용을 복습하기 위해 Member 테이블을 하나 더 생성했다
persistence.xml 파일에
<class>jpabasic.reserve.domain.Member</class> 를 추가했다.
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.2">
<persistence-unit name="jpabegin" transaction-type="RESOURCE_LOCAL">
<!-- 매핑 클래스 -->
<class>jpabasic.reserve.domain.User</class>
<class>jpabasic.reserve.domain.Member</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<!-- DB연결 설정 -->
<property name="jakarta.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="jakarta.persistence.jdbc.url"
value="jdbc:mysql://localhost/jpabegin?characterEncoding=utf8"/>
<property name="jakarta.persistence.jdbc.user" value="JPAUSER"/>
<property name="jakarta.persistence.jdbc.password" value="JPAPASS"/>
<!-- 하이버네이트 DB종류 설정 -->
<!-- JPA는 특정 데이터 베이스에 종속 되지 않음 -->
<!-- 데이터 베이스 별 차이나는 문법을 모두 다 사용 가능 -->
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<!-- 커넥션풀 설정 -->
<property name="hibernate.hikari.poolName" value="pool"/>
<property name="hibernate.hikari.maximumPoolSize" value="10"/>
<property name="hibernate.hikari.minimumIdle" value="10"/>
<property name="hibernate.hikari.connectionTimeout" value="1000"/> <!-- 1s-->
</properties>
</persistence-unit>
</persistence>
테이블과 일치하게 VO도 추가하여 작성했다
package jpabasic.reserve.domain;
import jakarta.persistence.*;
import java.time.LocalDateTime;
@Entity
@Table(name = "member")
public class Member {
@Id
private String email;
private String name;
@Column(name = "create_date")
private LocalDateTime createDate;
public Member() {
}
public Member(String email, String name, LocalDateTime createDate) {
this.email = email;
this.name = name;
this.createDate = createDate;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public LocalDateTime getCreateDate() {
return createDate;
}
public void setCreateDate(LocalDateTime createDate) {
this.createDate = createDate;
}
@Override
public String toString() {
return "Member{" +
"email='" + email + '\'' +
", name='" + name + '\'' +
", createDate=" + createDate +
'}';
}
}
그리고 기존에 했던 class에 한명 추가해서 실행했다
package main;
import jakarta.persistence.*;
import jpabasic.reserve.domain.Member;
public class UserSaveMain {
public static void main(String[] args){
EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabegin");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
Member member = new Member();
member.setName("아아");
member.setEmail("user@user.com");
em.persist(member);
tx.commit();
em.close();
emf.close();
}
}
성공
'[Spring Boot] 스프링부트 (IntelliJ) > JPA' 카테고리의 다른 글
[JPA] CascadeType 영속성 전이 (0) | 2024.03.27 |
---|---|
[JPA] 엔티티 설계시 주의점 (0) | 2024.03.27 |
[JPA] 인텔리제이에서 간단하게 JPA 돌려보기 (0) | 2024.02.21 |
[JPA] ORM (0) | 2024.02.07 |
JPA란? (0) | 2023.12.19 |