-3

助けてください

@OneToOne 関係によって関連付けられた 2 つのエンティティ 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);

助けてくださいああああああああ:)

4

1 に答える 1

0

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

Student フィールドを持つ Address を永続化しようとしています。

現在、マッピングに Cascade 属性がないように思われるため、DB にない Student を持つ Address を永続化しようとしていることが問題かもしれません。

Address の前に Student を保持するために、最後の 2 行を入れ替えてみてください。

変更を検討することもできます

@OneToOne
private Student student;

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

私はあなたを助けるのに十分な詳細を持っていないので、私はただ推測しようとしていることを覚えておいてください!

于 2012-04-30T16:27:38.360 に答える