인프런 커뮤니티 질문&답변

gmlwjd4667님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

주문 목록 검색, 취소

상품주문 에러 도와주세요

작성

·

741

0

안녕하세요 선생님 강의 잘듣고 있습니다.

다른 기능은 잘 되는데

상품주문기능중에서 

상품 주문을 submit하면 에러가 나오고

주문내역을 클릭해도 오류가 나옵니다..

저 스스로 해결해볼려고 해봤는데 원인을 찾지 못해서

코드한번 봐주실수있을까요?

 

전체코드파일 링크

 

https://drive.google.com/drive/folders/16rERqFx4v9aXM5_oqzXfoJIqJc240Jeh?usp=sharing

 

 

 

답변 6

1

다시 확인해보았습니다.

Order 클래스에서 

 

private OrderStatus orderStatus;

@Enumerated(EnumType.STRING)
private OrderStatus status;

로 바꾼 후 필드 이름이 바껴서 발생하는 해당 클래스 내의 setter 사용 2군데 오류나는 것 수정해주세요.

 

동작 확인 할 때 application.yml의 ddl-auto를 create 상태에서 테스트 해주세요.

gmlwjd4667님의 프로필 이미지
gmlwjd4667
질문자

감사합니다 !

0

gmlwjd4667님의 프로필 이미지
gmlwjd4667
질문자

말씀하신대로 stx를 - 로 바꿔주고

status 경로를 제가 명시한 패키지 경로로 고쳤는데 아직 에러가 나와요 ㅜㅜ..

 

 

 

 

 

0

코드에서 두 가지 문제점이 보입니다.

1) 

<input type="text" th:field="*{memberName}" class="formcontrol" placeholder="회원명"/>

formstxcontrol에서 stx를 -로 바꿔주세요

 

2) 

OrderStatus를 보시면 

패키지 경로와 코드에서 명시한 경로가 다릅니다.

jpabook.jpashop.domain와 jpabookkk.jpashoppp.domain;

이 서로 매칭이 되지 않습니다.

 

 

<option th:each=
"status : ${T(jpabook.jpashop.domain.OrderStatus).values()}"

 

 

package jpabookkk.jpashoppp.domain;

public enum OrderStatus {
ORDER, CANCEL
}

0

gmlwjd4667님의 프로필 이미지
gmlwjd4667
질문자

@Transactional 누락된거 잡아서 했는데 또 에러가 나네요..

이번에는 TemplateInputException 인데 제가 해결해볼려고 해봤는데 원인이 뭔지 모르겠어요

혹시 코드 한번 봐주실수 있으실까요..)))

 

 

https://drive.google.com/file/d/15uh6oVTTWW1p_oi4fiVZ1HTzdNl8vCL8/view?usp=sharing

gmlwjd4667님의 프로필 이미지
gmlwjd4667
질문자

혹시 제가 프로젝트 만들떄 ArtifactId 하고  name 을 달리했는데 

경로로 인해 문제가 발생할 수 있을까요..?

질문하신지 오랜 시간이 지났지만 저는 groupid를 다르게 적어서 생긴 문제였습니다.

0

안녕하세요. gmlwjd4667님, 공식 서포터즈 OMG입니다.

해당 에러 상황은 @Transactional이 누락되었을 때 발생하는 상황으로 보입니다.

말씀하신 상황(주문 등록) 과 에러메시지에서의 'persist'가 포함된 것으로 보아 OrderService 혹은

public Long Order 매서드 위(메서드 영역)의 @Transactional이 누락된 것으로 보입니다.

 

메뉴얼 혹은 제공해드리는 프로젝트 코드를 참고하여 @Transactional이 누락되었는지 확인 후 문제가 발생할 경우 프로젝트 코드를 공유해주세요.

 

*중요

크롬 혹은 엣지 브라우저에서 ctrl + shift + n 을 눌러 시크릿모드 창을 띄운 후 시크릿모드에서 링크를 접속하였을 때 액세스 권한이 출력되지 않아야 합니다.

 

관련 오류 참고:

1) java - Spring - No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call - Stack Overflow

 

2) [Spring Data JPA] No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call 에러 해결 (tistory.com)

 

감사합니다.

0

안녕하세요. gmlwjd4667님, 공식 서포터즈 David입니다.

.
액세스 권한이 필요하네요.

아래 링크에 "질문용 파일업로드" 항목을 참고해주세요.

https://bit.ly/3fX6ygx
.
감사합니다.