작성
·
262
0
안녕하세요
쿼리러너 관련 질문드립니다
코멘트 생성시 Pid 에 일부러 엉뚱한 값을 넣는 경우
QueryRunner를 쓰고 안쓰고에 차이가 있더라구요.
예를들어
this.commentService.ceateComment(dto, pId, user, qr);
qr repository 를 일부러 사용하지 않게 조작하면 pid 에 이상한 값을 넣어도 valitation 없이 create 가 되었는데
Qr 을 넘겨주는 순간 아래와 같이 유효하지 않은 pk 에 대해 조작하려고 한다는 validation 을 해주더라구요.
{
"path": "/posts/{엉뚱한 값}/comments",
"statusCode": 500,
"message": "insert or update on table \"comment\" violates foreign key constraint \"FK_94a85bb16d24033a2afdd5df060\"",
"timestamp": "1/21/2024, 4:06:08 PM"
}
이런 차이는 어디서 나는것일지, 이런것들도 Query Runner 의 역할인지도 궁금합니다.
답변 1
0
안녕하세요!
단순히 객체를 생성하는것과 데이터베이스에 실제 저장하려는 기능의 차이에대한 질문 맞으실까요?
단순 객체 생성은 데이터베이스 constraint에 제약을 받지 않습니다.
데이터베이스 constraint는 데이터베이스의 무결성을 유지하기 위함이기 때문에 데이터베이스에 값을 추가 또는 변형하려해야 적용됩니다
감사합니다!