2012-03-23 5 views
1

저는 JPA를 처음 사용하고 있으며 양방향 관계를 이해하는 데 약간의 문제가 있습니다.JPA Hibernate 양방향 관계

본인에게는 직업과 집행이 있습니다. 1 개의 직업은 정확히 1 개의 실행에 속하고 그 반대의 경우도 마찬가지입니다. 그래서, 나는 onetoone 관계를 사용하고 싶었습니다.

내 코드는 다음과 같습니다 :

@Entity 
public class Execution { 
     .... 
     @OneToOne(cascade=CascadeType.ALL,optional=false) 
     private Job job; 
     .... 
} 

@Entity 
public class Job{ 
    ...... 
    @OneToOne(mappedBy="job",optional=false) 
    private Execution execution; 
    ..... 
} 

나는 두 필드에 대해 false = 옵션 설정합니다. 예상대로 Null Job 객체를 가진 Execution 객체를 유지하려고 시도하면 hibernate가 예외를 throw합니다.
그러나 Null Execution 개체를 사용하여 Job 개체를 유지하는 것은 가능하지만 option = false로 설정합니다.

내가 뭘 잘못하고 있니?

+0

yuor 데이터베이스 구조에 대한 정보를 더 게시 할 수 있습니까? – AlexS

+0

내 주석을 기반으로 데이터베이스 구조를 최대 절전 모드로 만들지 못합니까? –

+0

할 수 있지만 프로덕션에는 권장되지 않으며 결코 사용하지 않습니다. 일반적으로 데이터베이스를 디자인 한 다음이 구조에 맞게 엔터티를 만들어야한다고 생각합니다. 어떤 데이터베이스를 사용하고 있습니까? – AlexS

답변

1

다음 주석을 추가해보십시오.

@Column(nullable = false) 
+0

하지만 jpa 주석이 아닙니다 –

+1

죄송합니다. 시도해보십시오 : @Column (nullable = false) – JCab