2012-04-28 14 views
-3

あなたは私は私がでそれがエンティティマネージャを使用して私のデータベースにデータを挿入する方法は?

を作業dosn'tことをしようとしたエンティティマネージャを使用してデータを挿入したい@OneToOne関係

@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 
} 

によってreleted 2 Entitys学生と住所を持っている私に

を助けることができますしてくださいしてください

@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); 

はpleaaaaaaaaase私を助けて:)

+0

私はadress.setstudent(学生)を削除したときに、私が投稿しているコードがうまく機能 – wadii

+0

problemeは、それは、[スタックオーバーフローがマインドリーダーではありませんEntityManger – wadii

+0

が注釈に注意を払っていないたインスタンス化しないということではありませんまたはCrystal Ball](http://meta.stackexchange.com/a/128551/172496)が適用されます。 –

答えて

0

を私はあなたの問題何を推測しようとしている:

住所を保持しようとしていますが、アドレスには学生フィールドがあります。

マッピングにカスケード属性がないようですが、おそらく問題は、あなたのDBにない学生がいるアドレスを保持しようとしていることです。

アドレスの前にスチューデントを維持するために、最後の2行を入れ替えてみてください。

また、私はちょうど私があなたを助けるために十分な詳細を持っていないので、推測しようとしていることに留意してください

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

@OneToOne 
private Student student; 

を変更することを検討して!

関連する問題