-3

拜托你能帮帮我吗

我有两个由@OneToOne 关系关联的实体 Student 和 Adress

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

帮帮我吧aaaaaaaaase :)

4

1 回答 1

0

我试图猜测你的问题是什么:

您正在尝试保留具有 Student 字段的地址。

现在,您的映射似乎没有 Cascade 属性,所以问题可能在于您正在尝试保留一个地址,该地址的学生不在您的数据库中。

尝试交换最后两行,以便在地址之前保留学生。

你也可以考虑换

@OneToOne
private Student student;

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

请记住,我只是想猜测,因为我没有足够的细节来帮助你!

于 2012-04-30T16:27:38.360 回答