1
1
package datajpa .entity ;
2
2
3
+ import static org .assertj .core .api .Assertions .assertThat ;
4
+
3
5
import java .util .List ;
6
+ import java .util .Optional ;
4
7
5
8
import javax .persistence .EntityManager ;
6
9
import javax .persistence .PersistenceContext ;
7
10
8
11
import org .junit .jupiter .api .Test ;
12
+ import org .springframework .beans .factory .annotation .Autowired ;
9
13
import org .springframework .boot .test .context .SpringBootTest ;
10
14
import org .springframework .test .annotation .Rollback ;
11
15
import org .springframework .transaction .annotation .Transactional ;
12
16
17
+ import datajpa .repository .MemberRepository ;
18
+
13
19
@ SpringBootTest
14
20
@ Transactional
15
21
@ Rollback (false )
@@ -18,6 +24,9 @@ public class MemberTest {
18
24
@ PersistenceContext
19
25
private EntityManager em ;
20
26
27
+ @ Autowired
28
+ private MemberRepository memberRepository ;
29
+
21
30
@ Test
22
31
public void testEntity () {
23
32
Team teamA = new Team ("teamA" );
@@ -48,4 +57,29 @@ public void testEntity() {
48
57
System .out .println ("-> member.team = " + member .getTeam ());
49
58
}
50
59
}
60
+
61
+ @ Test
62
+ public void testJpaEventBaseEntity () throws Exception {
63
+ // given
64
+ Member member = new Member ("member1" );
65
+ memberRepository .save (member );
66
+
67
+ Thread .sleep (100L );
68
+ member .setUsername ("member2" );
69
+
70
+ em .flush (); // @PreUpdate
71
+ em .clear ();
72
+
73
+ // when
74
+ Optional <Member > findOptional = memberRepository .findById (member .getId ());
75
+
76
+ // then
77
+ assertThat (findOptional .isPresent ()).isTrue ();
78
+ Member find = findOptional .get ();
79
+ assertThat (find .getCreatedDate ()).isNotNull ();
80
+ // assertThat(find.getUpdatedDate()).isNotNull();
81
+ assertThat (find .getLastModifiedDate ()).isNotNull ();
82
+ assertThat (find .getCreatedBy ()).isNotNull ();
83
+ assertThat (find .getLastModifiedBy ()).isNotNull ();
84
+ }
51
85
}
0 commit comments