2014-09-22 5 views
2

다른 엔티티의 기본 키와 함께 다른 엔티티 A와 조인 열이있는 엔티티 B를 작성하려고합니다. 엔티티 A에없는 값으로 엔티티 B를 만들면 예외가 표시되지 않습니다.. JPA가 자동으로 처리하지 않아야합니까? 엔티티의joinColumn이있는 JPA에서 엔티티 작성

코드 조각 :

@Entity 
    public class A{ 

     @Id 
     @Column(name="ORIGIN_ID") 
     private long id; 
     ... 

     @OneToMany(mappedBy="aBean",cascade = CascadeType.PERSIST) 
     private List<B> bList; 
    } 


    @Entity 
    public class B{ 
     @Id 
     private long id; 
     ... 

     @ManyToOne(cascade=CascadeType.MERGE) 
     @JoinColumn(name="ORIGIN_ID") 
     private A aBean; 
    } 
+1

엔티티 B를 "만드는 방법"에 대한 코드 스 니펫을 붙여 넣으십시오. – zbig

+0

작성시 전달 된 ID로 엔티티 A의 Bean을 가져오고 Bean을 엔티티 B의 aBean 객체로 설정합니다. 현재 위의 문제에 대한 해결책으로 빈 객체를 설정하는 동안 null 체크를 추가하십시오. –

답변

0

당신은 관계의 관리를 참조하고 있습니다. JPA 스펙에는 사용자가 일관성없는 관계 정보를 전달했기 때문에 거기에 예외가 발생해야한다는 것을 기억할 수있는 것도 없습니다. 모든 JPA 구현은 상황을 자체적으로 처리합니다. 일부는 관계의 소유자 측에만있는 것을 유지합니다. 다른 것들은 먼저 마주 치게되는 것을 바탕으로 지속될 것입니다. 다른 것들은 탐지하여 사용자에게 알릴 수있는 선택적인 처리를 가지고 있습니다.

양방향 관계를 사용할 때 가장 쉬운 조언은 양면이 일치하는지 확인하는 것입니다.

+0

감사합니다. 이 시나리오는 일부 부정적인 시나리오 테스트의 일부입니다. 솔루션이 있는지 확인하고 싶었습니다. –