본문 바로가기

개발일기/프로젝트 일기

(13)
HealthDuo-org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException 오류 public void messageSendSave(String messageSendTitle, String receiveMemberId, String messageSendContent, String loginMember, Optional SendMemberInfo) { MessageSend messageSend = new MessageSend(messageSendTitle, messageSendContent, String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))), loginMember, receiveMemberId); messageSend.addMessageSendMember(SendMem..
HealthDuo - 쪽지 보내기 기능 받은 쪽지함 entity 받은 쪽지함 entity 처음 테이블을 만들 때 하나의 테이블로 받은 쪽지와 보낸 쪽지를 관리하는 게 좋다고 생각했었다. 하지만 하나에 테이블에서 관리하게 되면 보낸 사람이 보낸 쪽지를 삭제하게 되면 받은 사람의 쪽지도 같이 삭제되기 때문 테이블을 분리해야겠다고 생각했다. @Entity @Setter @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class) public class MessageReceive { @Id @GeneratedValue(strategy = GenerationType.AUT..
HealthDuo-java.sql.SQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails 위 페이지에서 삭제를 누르게 되면 java.sql.SQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails 에러가 난다. mysql에서 DB 테이블이나 Row를 삭제하려고 할때 위와 같은 메시지가 발생할 때가 있다. 말그대로 현재 삭제하려고 하는 테이블 또는 행이 다른 곳에서 참조하고 있기 때문에 발생하는 문제다. 이 문제가 발생하는 이유는 댓글과 게시글이 단방향 +단방향으로 양뱡향으로 연관관계에 있다. 결론적으로 게시글에 댓글이 달려있으니 삭제가 안되는 것 이었다 따라서 @OneToMany(mappedBy = "bbs" ) List comments = new Ar..
HealthDuo-Thymeleaf 에서의 Context Path 사용방법 컨텍스트 패스(Context Path)란?WAS(Web Application Server)에서 웹어플리케이션을 구분하기 위한 path이다. 다시말해 상대적인 경로이다. 예를들어 JSP 에서 https://zontae.tistory.com/member/new 인 절대 경로가 있으면 /member/new처럼 /member/new를 상대적인 경로로 사용 할 수 있게 도와준다. 이러한 기능은 Thymeleaf에서 어떻게 사용할까. 타임리프는 @{img/error/500.png} 와 같이 @{}를 사용하여 매핑해주면 상대경로로 자동적으로 매핑해준다. 위 코드로 에러페이지로 접속할때 이미지가 나오질않는다. 나오지 않는 이유는 상대경로로 지정했기 때문이다. @{img/error/500.png} 로 지정했으니 에러가난..
HomeTheater - 결제 페이지 쿠폰번호 입력 후 할인 된 금액과 결제할 금액 업데이트 포인트 사용 후 결제할 금액과 할인 내역 업데이트 결제하기를 누르게 되면 카카오 페이 API가 실행된다. let discountratio = 1; //할인률 초기화 let discountsum = 0; //할인 총합 계산 let nowamount = document.getElementById("nowamount").innerText; let count = 0; //쿠폰은 하나만 등록하기 위한 카운팅 let pay_totalprice = document.getElementById("pay_totalprice"); let m_point = document.getElementById("m_point"); //쿠폰 번호입력시 10프로 할인 함수 const ..
HealthDuo-게시글 쓰기 주소을 다중셀렉트 기능을 통해 해당되는 주소를 저장하려고 맨처음 화면을 이렇게 구성했다. 하지만 홈화면에서 주소를 미리 구분하기 때문에 없어도 되는기능 같다. 따라서 아래 처럼 화면을 변경하였다. 해당되는 주소를 상단에 표시해주고 저장하게되면 분당동에 해당되는 게시판에 저장된다.
HealthDuo-home 화면 http://daplus.net/css-%EB%B6%80%ED%8A%B8-%EC%8A%A4%ED%8A%B8%EB%9E%A9%EC%9D%B4%EC%9E%88%EB%8A%94-%EA%B3%A0%EC%A0%95-%EB%84%88%EB%B9%84-%EB%B2%84%ED%8A%BC/ 버튼 크기를 고정하기 위에 링크에서 나온 해결방법을 적용해봤으나 변하지 않았다.... 나중에 다시 고쳐봐야 겠다. 비동기 통신을 통해 지역에 대한 정보로 xx구에대한 정보를 찾고 구에대한 정보로 xx동의 정보를 얻는다. xx동을 클릭하게 되면 xx동에 해당되는 게시판이 보여진다.
HealthDuo - 무한대댓글(JPA) @Override public void CommentSave(String content, Bbs bbs, Member member) { log.info("CommentSave(Service start)"); Integer commentGroup; Integer commentCnt; commentGroup = serviceMethod.incrementGroup(); commentCnt = serviceMethod.incrementCnt(); serviceMethod.saveComment(content, bbs, member, commentGroup, commentCnt); } /** 대댓글 저장 * checkInfo -> 부모댓글 구분 * @param content * @param bbs * @param ..