forked from cho-log/spring-learning-test
-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathEntityManagerTest.java
More file actions
66 lines (53 loc) · 1.89 KB
/
EntityManagerTest.java
File metadata and controls
66 lines (53 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package cholog;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.jdbc.core.JdbcTemplate;
import static org.assertj.core.api.Assertions.assertThat;
@DataJpaTest
public class EntityManagerTest {
@PersistenceContext
private EntityManager entityManager;
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private CustomerRepository customerRepository;
/**
* 비영속 -> 영속
*/
@Test
void persist() {
Customer customer = new Customer("Jack", "Bauer");
entityManager.persist(customer);
assertThat(entityManager.find(Customer.class, 1L)).isNotNull();
}
/**
* 영속 -> DB
*/
@Test
void flush() {
Customer customer = new Customer("Jack", "Bauer");
entityManager.persist(customer);
customer.updateFirstName("Danial");
String sqlForSelectCustomer = "select * from customer where id = " + customer.getId();
Customer savedCustomer = jdbcTemplate.query(sqlForSelectCustomer, rs -> {
rs.next();
return new Customer(
rs.getLong("id"),
rs.getString("first_name"),
rs.getString("last_name"));
});
assertThat(savedCustomer.getFirstName()).isEqualTo("Jack");
entityManager.flush();
Customer updatedCustomer = jdbcTemplate.query(sqlForSelectCustomer, rs -> {
rs.next();
return new Customer(
rs.getLong("id"),
rs.getString("first_name"),
rs.getString("last_name"));
});
assertThat(updatedCustomer.getFirstName()).isEqualTo("Danial");
}
}