application.yml
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/datajpa
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
# show_sql: true
format_sql: true
logging.level:
org.hibernate.SQL: debug
# org.hibernate.type: trace
spring.jpa.hibernate.ddl-auto: create
์ฐธ๊ณ : ๋ชจ๋ ๋ก๊ทธ ์ถ๋ ฅ์ ๊ฐ๊ธ์ ๋ก๊ฑฐ๋ฅผ ํตํด ๋จ๊ฒจ์ผ ํ๋ค.
show_sql
: ์ต์ ์System.out
์ ํ์ด๋ฒ๋ค์ดํธ ์คํ SQL์ ๋จ๊ธด๋ค.org.hibernate.SQL
: ์ต์ ์logger
๋ฅผ ํตํด ํ์ด๋ฒ๋ค์ดํธ ์คํ SQL์ ๋จ๊ธด๋ค.
ํ์ ์ํฐํฐ :
Member.java
@Entity
@Getter @Setter
public class Member {
@Id @GeneratedValue
@Column(name = "member_id")
private Long id;
private String username;
private int age;
}
ํ์ JPA ๋ฆฌํฌ์งํ ๋ฆฌ :
MemberJpaRepository.java
@Repository
public class MemberJpaRepository {
@PersistenceContext
private EntityManager em;
public Member save(Member member) {
em.persist(member);
return member;
}
public Member find(Long id) {
return em.find(Member.class, id);
}
}
JPA ๊ธฐ๋ฐ ํ ์คํธ :
MemberJpaRepositoryTest.java
@SpringBootTest
@Transactional
@Rollback(value = false)
class MemberJpaRepositoryTest {
@Autowired MemberJpaRepository memberJpaRepository;
@Test
public void testMember() {
Member member = new Member("memberA");
Member savedMember = memberJpaRepository.save(member);
Member findMember = memberJpaRepository.find(savedMember.getId());
assertThat(findMember.getId()).isEqualTo(member.getId());
assertThat(findMember.getUsername()).isEqualTo(member.getUsername());
assertThat(findMember).isEqualTo(member);
}
}