JPA
Persistable<ID>
codinglog
2022. 6. 14. 23:07
Spring data에서 Persistable 인터페이스는 ID를 가져오는 getId, 새로운 오브젝트여서 저장해야 하는지 merge 해야하는지 판단 할 수 있는 isNew 메소드가 있다.
엔티티에서 @Id 애노테이션으로 지정하면 엔티티를 만들 때 이미 ID가 null이 아니기 떄문에 새로운 객체가 아니라고 판단해서 select 한뒤 다시 머지를 하는 비효율적인 행동을 한다.
그래서 ID를 개발자가 직접 넣어줘야하는 엔터티는 Persistable 인터페이스를 구현해서 어떤 상황이 새로운 객체인지 알게 해 주어야한다.
반응형