@Transactional 회고.

Kyle_Kim·2023년 3월 3일
0

1. Test케이스에서 Transactional annotation은 db에 데이터를 밀어 넣긴 하지만 commit은 하지 않는다. 하지만 db에 insert/update sql문을 날려서 데이터는 transaction이 끝나기 전까지 사용 가능하다. (insert한걸 select해서 쓰는 개념.)

2.entity.flush()를 하면 sql이 날라가서 디비에서 쓸 수 있다 (Transactional commit은 안되어 있음)

3.flush()후 clear후에 데이터를 fetch해올 수 있다.

3-1클리어를 하면 디비에서 가져오고 

3-2클리어를 안하면 캐쉬된 entity를 가져올 수 있다. 그래서 clear()를 통해 디비에서 가져오는 것이 정확하다.

profile
Make Things Right

0개의 댓글