오늘의 뚝딱15 [Springboot/Java] 파일 삭제 파일 삭제에서 이미지 삭제하는 메소드를 까먹고 추가하지 않고 있었는데 이미지 삭제 메소드를 추가해줬더니 냅다 500 오류가 뜨기 시작했다 외래키 관련 오류인데 같은 로직으로 작성한 다른 기능들은 다 잘되고 있길래 뭔가,,,하다가 설마?!하고 아예 새 글을 등록하고 삭제해봤더니 삭제가 또 되더라구요?! 원인은 내가 다 지워버린 이미지 파일이었습니다.. init data로 넣어준거라 지울 이미지 자체를 찾지 못하고 있던것...! 아무튼 이렇게 간단하게 해결! Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Mon Jun 19 17:45:23 KST 2023.. 오늘의 뚝딱/ERROR 2023. 6. 19. [MySQL] @Lob 적용 불가 긴 문자열을 적용하기 위해 @Lob을 적용했었는데 막상 정말 긴 텍스트를 저장하려니까 500 오류가 뜨면서 Data too long for column 이라는 메세지를 확인했다. 이것저것 찾아봤더니 MySQL엔 @Lob이라는 어노테이션이 적용이 안된다는 것을 알게되었다! @Column(columnDefinition = "LONGTEXT") private String content; 대신 이렇게 columnDefinition을 사용한다고 한다! 오늘의 뚝딱/ERROR 2023. 6. 8. [Thymeleaf] Optional 객체에 접근 불가 Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "originReview.title" (template: "trendpick/review/modify" - line 14, col 58) at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:393) at org.attoparser.MarkupParser.parse(MarkupParser.java:257) at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:2.. 오늘의 뚝딱/ERROR 2023. 6. 6. [Java] Collections을 사용해 list에 여러 항목 추가하기_addAll() List orderTag = new ArrayList(); List orderItems = order.getOrderItems(); //주문한 상품의 태그들을 찾아온다 // {ㅇㅇㅇ, ㅁㅁㅁ, ㄴㄴㄴ} for(OrderItem oI : orderItems){ orderTag = orderItems.getProduct().getTags();//이러면 계속 orderTag가 바뀌는디 쓰읍 } 아무 생각 없이 처음엔 저장된 태그들을 받아오기 위해 orderTag라는 List를 선언해서 사용해줬는데 생각해보니까 for문 돌때마다 값이 저장되는 것이 아니라 갱신! 되고 있던 것 저 안에서 for문을 또 돌리긴 싫었고 List에 List 값을 통채로 넣을 방법이 없나 열심히 찾아보았다 역시! 없을리가! addAll.. 오늘의 뚝딱/STUDY 2023. 6. 1. @PreAuthorize("isAuthenticated()") 동작하지 않을 때 @EnableWebSecurity @EnableMethodSecurity(prePostEnabled = true) SecurityConfig파일에 어노테이션을 추가하지 않아서 생기는 문제였다! 꼼꼼히 챙깁시다 제발! 오늘의 뚝딱/ERROR 2023. 5. 29. Factory method 'filterChain' threw exception with message: 'trendpick/usr/login?error' is not a valid redirect URL http .formLogin( formLogin -> formLogin .loginPage("/trendpick/usr/login") ) 경로 설정을 잘못해서 생긴 문제였다 꼭꼭 확인 잘 해주기! 하아 진짜 열심히 하려고 하고 있는데 내가 빌런이 될 것 같아서 속상하다 급하게 호다닥 인강도 듣고 막 하는중... 더더 열심히해야지! 오늘의 뚝딱/ERROR 2023. 5. 29. org.springframework.beans.factory.UnsatisfiedDependencyException 오류가 너무 길어서 정말 읽기 싫었는데 다행히 시크릿키를 분리하는 와중에 일어난 오류였다 Client id must not be empty 다행히 아주 친절하게 위와 같이 나와있었다. 정신 꼭꼭 차리기! 더보기 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration': Unsatisfied dependency expressed through field 'httpSecurity': Error creating bean with nam.. 오늘의 뚝딱/ERROR 2023. 5. 2. Injection of autowired dependencies failed 보통 autowired 어노테이션이 어딘가에서 빠져서 나는 에러라고 한다 @Contoller를 확인하고 여기서 호출하는 서비스에 @Autowired가 제대로 붙어있나 확인한다고 한다 근데 나는 이 경우가 아니었다 알고 봤더니 yml 파일에서 커스텀한 변수명과 AppConfig 파일에서 호출한 변수명이 달랐기 때문이었다! 확인 잘해주기! 오늘의 뚝딱/ERROR 2023. 4. 30. 1주차 미션 회고 [1주차 미션] 호감 표시 삭제 & 구글 로그인 연동 알게된 점 🤔 호감 삭제 권한에 대한 객체를 확인 할 때 Object check = likeablePersonService.findById(id); System.out.println(check); Optional[LikeablePerson(id=3, createDate=2023-04-05T15:24:52.414144, modifyDate=2023-04-05T15:24:52.414144, fromInstaMember=InstaMember(id=5, createDate=2023-04-05T15:24:40.723778, modifyDate=2023-04-05T15:24:40.723778, username=master, gender=W), fromInstaM.. 오늘의 뚝딱/STUDY 2023. 4. 7. @Transactional(readOnly=true) 주어진 과제를 하고 있는데 아무리 delete를 해도! 적용이 안돼! 코드를 아무리 들여다봐도 문제가 없었고 페이지 리다이렉팅도 됐고 화면상에서도 사라지는데! DB에 적용이! 안돼! delete 메소드 그거 몇줄이나 된다고 암튼 들여다 보다가 도저히 모르겠어서 멘토님한테 SOS 보냈는데 1초 만에 해결했다. 서비스 시작 지점에 달려있던 @Transactional(readOnly=true) 를 흐린눈 하고 넘어가버린것이었다. 자자 여기서 @Transactional에 readOnly=true가 걸리면 무슨 일이 일어나는지 다시 한 번! 확실히 기억하고 가쟈 readOnly = ture 스프링 프레임워크가 하이버네이트 세션 플러시 모드를 MANUAL로 설정해 강제로 플러시를 호출하지 않는 한 플러시가 일어나지.. 오늘의 뚝딱/ERROR 2023. 4. 5. java.lang.NullPointerException: Cannot invoke "java.util.List.add(Object)" because "~" is null 예제를 실행하던 중 전체 테스트를 돌리면 우당탕탕 오류가 뜨는 상황이 발생했다. 제일 첫 번째 테스트의 오류를 까봤더니 NPE가 발생하고 있었다. 해당 오류가 난 곳으로 슉슉 가봤더니 39번째 라인인 answerList.add(a)에서 오류가 발생했고 위를 봤더니 초기화를 해두지 않았다. 초기화를 하지 않아 메모리 주소가 없어서 add를 할 수 없던 것 같다. 꼭꼭 습관적으로 초기화를 시켜줘야겠다. https://wikidocs.net/book/7601 점프 투 스프링부트 점프 투 스프링부트는 Spring Boot Board(SBB)라는 이름의 게시판 서비스를 만들어가는 과정을 설명한 스프링부트 입문서이다. 자바 설치부터 시작하여 서비스 운… wikidocs.net 오늘의 뚝딱/ERROR 2023. 3. 22. [JPA] JPA란? | JPA 사용을 위한 dependency 설정 ORM(Objec - Relational mapping) 이란? DB를 사용하려고 할 때 SQL query 대신 ORM을 사용하면 개발자가 쿼리를 직접 작성하지 않아도 DB의 데이터를 자바 문법만으로 처리할 수 있다. ORM이 자동으로 SQL 쿼리를 생성해주기 때문이다. 이 때, 데이터를 관리할 때 사용하는 ORM 클래스를 엔티티(Entity)라고 한다. (+) ORM을 사용하면 DB 종류에 상관 없이 일관된 코드를 유지할 수 있어서 프로그램을 유지/보수 하기가 편리하고 내부에서 안전한 SQL 쿼리를 자동 생성해 주므로 개발자가 달라도 통일된 쿼리가 작성 가능하며 오류 발생률도 줄일 수 있게 된다. JPA(Java Persistence API)란? 스프링부트는 JPA를 사용해 DB를 처리한다. JPA는 .. 오늘의 뚝딱/STUDY 2023. 3. 22. 이전 1 2 다음