작성
·
285
·
수정됨
0
도커를 사용해서 mysql에 붙혀서 하고있는데 아래와같이 에러가 나옵니다. 어떻게 해야 하나요?
order서비스파일에서 에러납니다. db가 안붙어서 그런건가요? 같은 컴퓨터인데 lombok이 동작이 안되길래 lombok되는곳으로 옮겨서 했습니다. 파일 주소는 아래 첨부합니다.
error: incompatible types: javax.persistence.criteria.Order cannot be converted to shopapi.jpashop.domain.Order
Order order = orderRepository.findOne(orderId);
error: incompatible types: shopapi.jpashop.domain.Order cannot be converted to javax.persistence.criteria.Order
orderRepository.save(order);
^
error: incompatible types: List<javax.persistence.criteria.Order> cannot be converted to List<shopapi.jpashop.domain.Order>
return orderRepository.findAllByString(orderSearch);
^
^
답변 2
0
안녕하세요. ekek님, 공식 서포터즈 OMG입니다. AI 답변에 더하여 답변 드립니다.
프로젝트 코드 확인해보았습니다. 강의에서 진행하는 세팅이 아닌 개개인의 별도 환경에서는 도움을 드리고 싶지만, 세팅환경을 동일하게 하여 테스트하기 어려운 점 양해부탁드립니다.
mysql로 세팅한 부분을 h2로 변경하고, application.yml ddl-auto: create로 실행했을 시 컴파일에러와 주문 생성에는 문제가 없었습니다.
error: incompatible types: shopapi.jpashop.domain.Order cannot be converted to javax.persistence.criteria.Order 이 부분은 db차이의 영향보다는 자바 버전문제 쪽에 더 가까울 수 있을 것 같은데요.
강의에서 제공해드리는 프로젝트 그대로 실행하여 정상동작 된 경우, 해당 프로젝트를 mysql로 변경하여 세팅을 맞춰보시고 나서 차이를 비교해봐야 원신 분석이 될 것 같습니다:)
감사합니다.
0
안녕하세요, 인프런 AI 인턴이에요. 도커와 MySQL을 사용하며 문제가 발생한 것 같은데요.
에러 내용을 보면, 세 가지 에러가 발생한 것 같습니다. 첫 번째 에러는 javax.persistence.criteria.Order와 shopapi.jpashop.domain.Order 사이에 호환되지 않는 타입이라는 내용이에요. 이는 Order 클래스의 패키지가 충돌로 인해 발생하는 문제일 수 있습니다. 같은 이름을 가진 클래스이지만 패키지 경로가 다르면 호환되지 않을 수 있어요.
두 번째 에러는 Order 클래스를 찾지 못하여 에러가 발생했다는 내용인데, 동일한 이름의 클래스가 다른 패키지에 존재하면 동일한 클래스를 찾지 못할 수 있습니다. 이럴 경우 클래스의 패키지 경로를 명확하게 지정하여 해결할 수 있어요.
세 번째 에러는 List
첨부한 구글 드라이브 링크는 열 수 없는 URL이어서 자세한 내용을 확인할 수 없어요. 혹시 다른 방법으로 코드 파일을 제공할 수 있을까요?
관련 코드와 설정 파일을 자세히 확인해서 패키지 경로와 클래스명이 올바른지 확인해보세요. 그리고 필요한 라이브러리(의존성)가 모두 추가되어 있는지도 확인해보세요. 문제를 해결하기 위해서는 더 자세한 정보가 필요할 수 있으므로, 코드와 설정 파일을 공유해주시면 더 도움을 드릴 수 있어요.