반응형
Spring MVC에서 PostgreSQL로 INSERT를 하려고 했는데
ERROR: cannot execute INSERT in a read-only transaction 라는 에러가 발생하였다.
이는 PostgreSQL의 트랜지션이 읽기 전용으로 되어 있어 발생하는 것이다.
이땐, INSERT 구문을 실행하는 메소드에 @Transitional(readOnly=false) 라는 어노테이션을 선언해주면 된다.
readOnly의 값이 true가 default이므로 false로 변경하여 insert도 할 수 있게 만들어준다.
// 예시
@Override
@Transitional(readOnly=false)
public ResultModel insertData(UserModel user_model) {
...
}
@Transitional() 어노테이션을 작성할 때 주의할 점은 라이브러리다.
import org.springframework.transaction.annotation.Transactional;
위 라이브러리를 임포트해야 한다.
다른 라이브러리로 임포트하면 readOnly 부분이 빨간 밑줄로 뜨면서 인식되지 않는다.
반응형