2011-08-10 5 views
0

저는 (혐의로 ..) 아주 기본적인 문제에 직면 해 있습니다.열린 JPA를 사용하여 엔티티 다시 만들기

Structure

내가 클라이언트 측에서 플렉스 함께 일하고 있어요, 자바 & 개방 JPA 서버 측과 마이크로 소프트 SQL 서버 지속성 층에 : 이것은 내가로 다스 려하고있어 구조입니다. (클라이언트 측에서) 내 응용 프로그램에서

는 클라이언트가

  1. 참가자
  2. 은하지 않는 것이 좋습니다
  3. 을 권장합니다 여부를 결정하는 것이 가능하다.

내가 조언하는 클라이언트로 'Joe'가 있다고 가정하고 지금은 Joe를 '권장하지 않음'으로 변환합니다 (이는 클라이언트 측에서 단순히 체크 노드를 체크 해제하여 수행됩니다).

백엔드에서 Joe의 현재 엔티티 (권고 된 클라이언트)를 제거하고 ID를 null로 설정하고 '권장되지 않은 클라이언트'로 다시 작성합니다. 뭐 그런 :

getAdviseeDao().delete(currentPersistedAdvisee); 
currentAdvisee.setId(null); 
getAdviseeDao().create(currentAdvisee); 

나는이 일 수있는 이유

com.microsoft.sqlserver.jdbc.SQLServerException: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_advised_to_clients". The conflict occurred in database "blablabla", table "dbo.participants", column 'id'. 

어떤 아이디어를 받고 계속?

답변

0

JPA는 그런 식으로 작동하지 않습니다. ID를 null로 설정하지 말고 엔티티를 다른 것으로 다시 유지하려고하지 마십시오. 이상하고 예기치 않은 행동을하게됩니다.

T 당신은 상속 대신 집계로 가야한다고 생각합니다. Embeddable 클래스에 조언 된 부분을 캡슐화한다고 생각합니다.

관련 문제