2013-04-10 4 views
0

상속 유형 JOINED를 사용하는 수퍼 및 하위 클래스를 만들었습니다.JPA 상속 유형 Joined - 병합시 DTYPE 손실

지속하면 모든 것이 작동합니다 ... 수퍼 클래스 테이블의 내 DTYPE 열이 클래스 이름 "TravelTask"로 설정됩니다. 그러나 내가 병합을 시도 할 때, DTYPE은 null로 플러시 된 것처럼 보입니다.

merge를하기 전에, entityManager.find()를 사용하여 지속 된 엔티티를 다시 읽으려고했는데, 이것은 DTYPE 값을 다시 가져오고 싶지만, 이것을 볼 수는 있지만 null로 반환됩니다. 데이터베이스 ....

그래서 이후의 병합에서 DTYPE은 손실되고 기본 키 제약 조건 (나는 이것이 관련 있다고 가정)을 얻는다.

I가 지속와 슈퍼과 서브 클래스에서 모두 병합 호출 시도,하지만 같은 일이 발생

...

어떤 조언에 감사드립니다.

i

+0

초기 지속 후 엔터티를 처리 할 때마다 수동으로 DType 값을 "TravelTask"로 설정해야합니다. 그렇지 않으면 Nulled가 해제됩니다. – smackenzie

답변

0

DTYPE 열을 매핑합니까? 일반적으로 JPA는이를 매핑하지 않을 것입니다. JPA는 객체의 클래스를 기반으로 삽입합니다. 업데이트해서는 안됩니다.

아마도 코드와 JPA 제공 업체/버전이 포함되어있을 수 있습니다.