誰かが間違っていることを教えてもらえますか?org.hibernate.exception.ConstraintViolationException:列 'pacientId'をnullにすることはできません
とエンティティ:
@Entity
@NamedQuery(name = "Pacients.findAll", query = "SELECT p FROM Pacients p")
public class Pacients implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int pacientId;
private String name;
private String surname;
// bi-directional many-to-one association to DetaliiPacient
@OneToOne(mappedBy = "pacient")
@Cascade(value = { CascadeType.ALL})
private PacientsDetails pacientDetail;
}
@Entity
@Table
@NamedQuery(name = "PacientsDetails.findAll", query = "SELECT d FROM PacientsDetails d")
public class PacientsDetails implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int pacientDetailsId;
private String address;
@OneToOne
@JoinColumn(name = "pacientId",referencedColumnName="pacientId")
@Cascade(value = { CascadeType.ALL})
@JsonBackReference
private Pacients pacient;
}
"pacients" テーブルからフィールド "pacientId" はAUTO_INCREMENTであると私はmysqlデータベースを使用している私は、次のテーブルを持っています。ログに
sessionFactory.getCurrentSession().persist(pacient);
私はHibernateがやっていることを参照してください:私がやっているとき
タイトルからエラーが表示されます
Hibernate: insert into Pacients (doctorId, name, surname) values (?, ?, ?)
Hibernate: insert into PacientsDetails (address, pacientId) values (?, ?)
が、問題は事実である、第2のクエリでpacientId(最初のクエリによって生成された新しいもの)の値は認識されません。
誰かが私に行方不明を教えてもらえますか? ありがとうございます!
まず(医師のクライアント)のようになります。第2:2つのエンティティを保存する場所にコードを投稿してください。 – Alexander
あなたの答えをありがとう。最初に私はルーマニアの言語でエンティティを持っていました。英語を使用するためのリファクタリングを行った後、私は "Pacient"エンティティを忘れてしまった:とにかく技術的な観点から私は以下のように問題を解決した。 – Aditzu