Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

entity 부분을 모듈로 빼놓는방법 #1

Open
joonseolee opened this issue Mar 25, 2020 · 1 comment
Open

entity 부분을 모듈로 빼놓는방법 #1

joonseolee opened this issue Mar 25, 2020 · 1 comment

Comments

@joonseolee
Copy link

joonseolee commented Mar 25, 2020

안녕하세요 jojoldu님 :)
글을 읽으면서 많이 도움을 받고있는데 제가 업무를 하다가 궁금한게 있어서 이슈쪽에 등록합니다 정확히 소스단에 문제가 있어서 올리는게 아니기때문에 문제가 있을시 닫도록할께요

현재 jpa 부분을 한 parent 모듈로 만들어두고 그것을 활용하여 각각의 배치 잡을 만들려고하는데 이상하게 querydslItemReader 를 사용할시 아래와 같은 쿼리 문제가 발생합니다

@Bean
public QuerydslPagingItemReader<School> reader() {
    return new QuerydslPagingItemReader<>(entityManagerFactory, CHUNK_SIZE
        , query -> query.selectFrom(school).where(school.id.eq(10L)));
}
java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: School is not mapped [select school
from School school

디비 테이블명은 school 소문자에, 조회부분 school 이라는 컬럼조차 없기때문에 쿼리 문제가 발생하더라군요...JpaItemReader 를 사용할경우 정상적으로 jpql 이 먹히는데 컬럼명들도 자동 별칭처리되구요
근데 querydsl 부분은 왜 그런지 도저히 찾아봐도 모르겠어서 글을 올립니다 ㅜ

엔티티부분을 각 배치잡쪽에 두면 그건 또 되지만 그렇게될경우 다른 배치잡들을 만들때 매번 엔티티를 구현해야하기때문에... :(

@jojoldu
Copy link
Owner

jojoldu commented Nov 8, 2020

@Ponya 님 안녕하세요! 제가 이슈 확인이 늦었네요 ㅠ
혹시 해당 프로젝트의 전체 코드가 있을까요?
보통 2가지 원인으로 발생하는데요.

  1. School 클래스가 선언되지 않은 경우 (@entity가 선언 안되어있는 경우 포함)
  2. Enttiy Scan 범위에 School 엔티티가 없는 경우 (스프링 배치 메인 애플리케이션: @SpringBootApplication이 선언된 영역이 School 패키지를 못읽는 경우)

인데요.
이 부분들을 확인하면 좋을것 같아서요 :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants