2012-04-28 3 views
-3

당신은 제가 @OneToOne 관계에 의해 두 Entitys 학생 및 ADRESS을 releted 한엔티티 관리자를 사용하여 데이터베이스에 데이터를 삽입하는 방법은 무엇입니까?

@Entity 
public class Student implements Serializable { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private int idstudent; 
    private String firstname; 
    private String name; 
    @OneToOne 
    private Adress adress; 
    //setters and getters 
} 

public class Adress implements Serializable { 
    private static final long serialVersionUID = 1L; 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private int idadress; 
    private String street; 
    private String codezip; 
    @OneToOne 
    private Student student; 
    //getters and setters 
} 

은 내가 그것에 의해 작업

를 dosn't 것을 시도 엔티티 매니저를 사용하여 데이터를 삽입 할 수 있습니다 제발, 제발
@PersistenceContext(unitName = "JPADD") 
EntityManager em; 
Student student = new Student(); 
student.setfirstname("cc"); 
student.setname("cc"); 
Adress adress = new Adress(); 
adress.setstreet("ccccccccc"); 
adress.setstudent(student); 
em.persist(adress) 
em.persist(student); 

도움이 날은 내가 당신의 문제가 무엇을 생각하려고 해요 :)

+0

adress.setstudent (학생) – wadii

+0

을 삭제하면 내가 게시 한 코드가 잘 작동합니다. 문제가 EntityManger를 인스턴스화하지 않는다는 것입니다. – wadii

+0

주석에주의를 기울이지 않았습니다. [Stack Overflow is Not Mind Reader 또는 Crystal Ball] (http://meta.stackexchange.com/a/128551/172496)이 여전히 적용됩니다. –

답변

0

을 pleaaaaaaaaase :

학생 필드가있는 주소를 유지하려고합니다.

이제 매핑에 캐스케이드 속성이없는 것 같습니다. 어쩌면 문제는 데이터베이스에없는 학생이있는 주소를 유지하려고하는 것입니다.

주소 앞에 Student를 유지하려면 마지막 두 줄을 바꾸어보십시오.

또한 난 그냥 당신을 도울 수있는 충분한 정보를 가지고 있지 않기 때문에 추측하기 위해 노력하고있어

명심
@OneToOne(cascadeType = Cascade.PERSIST) 
private Student student; 

@OneToOne 
private Student student; 

변경 고려할 수 있습니다!

관련 문제