@SelectKey 를 사용하는 이유를 알수 있을까요?
867
작성한 질문수 32
글 수정할때 시퀀스 값에 원래 content_seq.nextval 로
@INsert에 넣으면 문제가 되나요? 잘 이해가 안되네요 .
아래는 해당 코드입니다.
@SelectKey(statement = "select content_seq.nextval from dual", keyProperty = "content_idx", before = true, resultType = int.class)
@Insert("insert into content_table(content_idx, content_subject, content_text, " +
"content_file, content_writer_idx, content_board_idx, content_date) " +
"values (#{content_idx}, #{content_subject}, #{content_text}, #{content_file, jdbcType=VARCHAR}, " +
"#{content_writer_idx}, #{content_board_idx}, sysdate)")
void addContentInfo(ContentBean writeContentBean);
답변 2
1
시퀀스 사용 부분입니다.
시퀀스는 1부터 1씩 증가되는 유일값을 구하기 위해 사용합니다.
각 글들을 구분하기 위한 유일값이 필요하기 때문에 시퀀스를 사용하는 것이고
그 시퀀스를 insert 퀄리 수행전 미리 구해서 사용하기 위해 @SelectKey를 사용합니다.
그리고 insert 문제에서 직접 하지 않는 이유는
웹이라는건 많은 사람들이 동시에 서비스를 이용할 수 있습니다.
그때문에 글을 저장하고 현재 작성한 글 정보를 불러오는 사이 누군가 글을 작성하게 되면 내가 작성한 글이 아닌 남이 작성한
글을 불러올 수도 있게 되버립니다.
그래서 시퀀스 값을 미리 구하고 저장하는 작업을 취하게 됩니다.
저장만 하고 끝내면 되는 상황이라면 필요가 없지만 저장 후 작성한 글을 보기를 구현할 때
매우 적은 확률로 오동작 하는걸 방지하기 위함입니다.
이건 스프링에서 하는게 아닌 모든 웹 개발 수행시 사용하는 처리 기법입니다
감사합니다.
dependencies 셋팅 부분에서 에러가 발생하네요
0
288
1
학습 페이지 가 열리지 않아서 강의 시청이 안 됩니다.
1
263
1
8강 에서 servlet-context.xml에 설정에서 에라
0
398
1
자바 상단메뉴 셋팅 다하고 실행시키니 에러가 납니다.
0
1806
1
Dynamic web 프로젝트를 메이븐 프로젝트로 컨버트해서 사용하는 이유가 궁굼합니다.
0
559
1
eclipse버전이 달라 메뉴가 달라요.
0
467
2
XML 방식에서 BoardDao의 modifyContentInfo
0
384
1
property editor 설치할때 오류가 나네요
0
3031
2
Java 설정 방식에서
0
375
1
22강과 23강의 "강의 내용이 같은지 확인" 부탁드립니다.
0
390
1
jsp form:hidden 부분 타임 리프 변환 혹시 질문 될까요?
0
423
1
13강 List<Integer> data3
0
335
1
sqldeveloper 22.2버전과 오류
0
542
1
44강 데이터 베이스 테이블 만들기중인데, 테이블이 안 만들어집니다,.
0
658
1
pom.xml 셋팅 질문
0
290
1
오류 질문드립니다.
0
325
1
오류 질문드립니다.
0
463
0
생성 오류
0
300
1
에러 질문입니다.
0
631
1
에러 질문드립니다.
0
335
1
에러 질문입니다.
0
566
1
maven dependency management
0
245
1
에러질문
0
233
2
이미지
0
311
1





