문제
- save 시 @Id 컬럼을 기준으로 이 객체가 isNew인지 아닌지 체크
- repository의 기본 save를 이용 시 새로운 객체로 insert를 해야하는데 update를 하려고 하고, 이때 없는 데이터라 update가 되지않음.
해결
@Table
public class TestClass {
@Id
private Long id;
private Long value;
}
기본 클래스라고 치고..
- 1번째 방법 예)
- @Query에 insert문을 직접 사용하여 사용.
- 2번째 방법 예)
@Table public class TestClass implements Persistable { @Id private Long id; private Long value; @Transient private boolean isNew; public Point(String id, Long value) { this.id = id; this.value = value; this.isNew = false; } @Override public Serializable getId() { return id; } @Override public boolean isNew() { return isNew; } }
Persistable를 상속받아 getId()와 isNew() 를 @Override한다.
isNew()를 통해 새로운 엔티티인지 update를 해야하는지 확인하기 때문이다.