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

k-dev님의 프로필 이미지

작성한 질문수

실전! 스프링 데이터 JPA

서로 다른 스키마(database) 에 있는 테이블의 연관관게 매핑 시 에러가 나는데 가능한 방법이 있나요?

작성

·

1K

0

Caused by: org.hibernate.AnnotationException: Unknown mappedBy in: xxx.a.model.User.preference, referenced property unknown: xxx.b.model.Preference.user

위와 같은 에러가 납니다.

같은 스키마에 있는 Entity 는 아무 문제 없이 연관관계 매핑이 잘 됩니다.

확인 부탁드립니다.

@Entity

@Table(name = "A.users")

@Cacheable

@JsonInclude(JsonInclude.Include.NON_NULL)

class User(

:::

      @OneToOne(fetch = FetchType.LAZY, mappedBy = "user", cascade = [CascadeType.ALL])

      var preference: Preference?,

:::

): BasePersistable() {

}

@Entity

@Table(name = "B.preferences")

@Cacheable

@JsonInclude(JsonInclude.Include.NON_NULL)

class Preference(

:::

    @JsonIgnore

    @OneToOne(fetch = FetchType.LAZY)

    @JoinColumn(name = "user_id")

    var  user: User?,

:::

): BasePersistable() {

}

답변 3

1

k-dev님의 프로필 이미지
k-dev
질문자

같은 EntityManagerFactory 로 관리되는 경우 A.table1 join B.table2 이 잘 되네요... EntityManagerFactory 가 다른 경우는 안되는게 맞을 것 같습니다. 

확인 감사합니다.

1

k-dev님의 프로필 이미지
k-dev
질문자

알겠습니다.

현제 다른 EntityManagerFactory 로 관리되는데

EntityManagerFactory 하나로 합쳐도 될 것 같습니다.

합쳐서 테스트 해 보겠습니다.

감사합니다.

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. kepha님

A와 B가 같은 EntityManagerFactory에서 관리되는 것이 맞나요? 그렇다면 오류는 스키마와 관계없이 매핑이 뭔가 잘못된 것 같아요.

참고로 스키마가 다르면 다른 데이터베이스로 보고 연관관계 매핑을 하지 않는 것을 추천드립니다.

제가 코틀린을 사용하지 않아서, 자바 코드로 해당 부분을 재현할 수 있는 예제를 만들고, 전체 프로젝트를 압축해서 올려주세요.

감사합니다.

k-dev님의 프로필 이미지

작성한 질문수

질문하기