목록Artineer 리뉴얼 프로젝트 (17)
오봉이와 함께하는 개발 블로그
문제 Notice와 NoticeComment는 1:N의 관계를 가진 단방향 (NoticeComment -> Notice) 관계이다. Notice를 삭제하려 하니 nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement 오류가 발생했다. 구글링을 해보니 JPA에서 잘못된 쿼리가 나갈 때 발생하는 오류인 것을 알게 되었다. Referential integrity constraint violation: "FKLTL2X9YPYFQ1G03DGFE9IIG3Q: PUBLIC.NOTICECOMMENT FOREIGN KEY(NOTICE_NO) REFERENCES PUBLIC.NOTICE(NOTIC..
문제 공지사항 게시판에 들어가면 페이징은 되었지만, 검색 조건(제목, 작성자)을 넣고 검색 하면 view에서 다시 랜더링 했을 때 검색 조건에 따라 페이징 링크가 만들어지지 않아 다음 페이지를 클릭하면 엉뚱한 페이지가 나왔다. http://localhost:8080/noticePage 접속 검색 조건 - 제목 : pring 검색 성공 다음 페이지(2페이지) 클릭 시 http://localhost:8080/noticePage/?page=1로 접속되는 문제. 해결 form을 통해 검색 조건과 내용을 넘겨주고 같은 주소로 매핑된 컨트롤러에서 검색 조건(selectorParam)과 내용(Param)을 넘겨받아서 model에 값을 추가해서 view로 다시 넘겨준다. view에서 전달 받은 검색 조건과 내용이 공백..
에러 내용 JPA를 사용하는데, 연관 관계를 맺어놓은 엔티티를 생성해서 저장하려고 하니 object references an unsaved transient instance - save the transient instance before flushing 라는 에러가 발생했다. 공지를 작성할 때 파일을 업로드 할 수 있고, 업로드한 파일의 원본 이름과 서버에 저장하는 이름을 UploadFild테이블에 저장해서 파일을 다시 다운로드 받을 때 원래 파일 이름으로 다운로드 받을 수 있도록 구성했다. 이를 위해 공지(Notice) 테이블을 주 테이블로 설정해서 @OneToOne 양방향 매핑을 했는데, 외래키를 가지고 있는 Notice 테이블을 persist할 때 문제가 발생했다. UploadFile upload..
기능 소개 간단하게 설명하면 비밀번호를 찾을 때 아이디와 이메일을 입력하면 입력한 정보를 토대로 DB에서 Member를 찾고 해당 이메일로 비밀번호를 변경해서 이메일을 보내준다. JavaMailSender 메일 전송은 스프링에서 제공하는 JavaMailSender를 사용한다. JavaMailSender는 SimpleMailSender와 MimeMessage를 지원하는데 간략하게 설명하면 SimpleMailSender는 말 그대로 심플한 메시지 자체만을 메일로 전송할 때 사용하는 메소드이고, MimeMessage는 파일 첨부나 HTML로 구성할 때 사용한다. @Component @RequiredArgsConstructor public class MailService { private final JavaMa..
보완할 기능 기능은 만들었지만, 뭔가 마음에 들지 않아서 보완해야 할 기능을 적어놓으려 한다. 업데이트를 하게 된다면 년도. 월. 일 (요일)을 적어서 같이 업데이트 하겠다. 회원 가입 할 때 아이디 비밀번호 글자수 제한 회원 가입 할 때 아이디 비밀번호 글자 제한(알파벳, 숫자, 특수문자(!, *, ~ 등)) 아이디 비밀번호 찾을 때 ajax로 찾지만 @Validated 적용해서 서버에서 검증 비밀번호 찾기 하면 전송 되는 이메일 변경 (현재 본인 이메일로 전송 되는데, admin@artineer.net으로 전송하게끔 하고 싶다.)