2012-04-28 79 views
-3

請請你能幫助我如何使用entitymanger在我的數據庫中插入數據?

我有兩個實體來說學生和地址,通過@OneToOne關係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 
} 

我想用實體馬槽我試圖通過它不到風度工作

插入數據
@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 2012-04-28 23:28:01

+0

問題不是它沒有實例化一個EntityManger – wadii 2012-04-28 23:29:45

+0

沒有注意到註釋,[Stack Overflow不是一個心理讀者或水晶球](http://meta.stackexchange.com/a/128551/172496)仍然適用。 – 2012-04-28 23:31:33

回答

0

我試圖猜測是你的問題:

您正在嘗試保留一個地址,該地址包含一個學生字段。

現在,似乎您的映射上沒有Cascade屬性,因此,問題可能是您要保留的地址中包含不在數據庫中的學生。

嘗試交換最後兩行以使學生在地址之前持久化。

您也可以考慮改變

@OneToOne 
private Student student; 

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

請記住,我只是試圖猜測,因爲我沒有足夠的信息來幫助你!

相關問題