Kann mir jemand sagen, was ich falsch mache? Ich habe die nächsten Tabellen:org.hibernate.exception.ConstraintViolationException: Spalte 'pacientId' kann nicht null sein
Und die Entitäten:
@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;
}
Das Feld "pacientId" von "pacients" Tisch ist AUTO_INCREMENT und ich bin mit MySQL-Datenbank.
Der Fehler von Titel erscheint, wenn ich so mache:
sessionFactory.getCurrentSession().persist(pacient);
In logs Ich sehe, dass Hibernate tut:
Hibernate: insert into Pacients (doctorId, name, surname) values (?, ?, ?)
Hibernate: insert into PacientsDetails (address, pacientId) values (?, ?)
aber das Problem ist die Tatsache, dass in der zweiten Abfrage der Der Wert von pacientId (der bei der ersten Abfrage neu generiert wurde) wird nicht erkannt.
Kann mir bitte jemand sagen, was ich vermisse? Vielen Dank im Voraus!
allererst eines Patienten (Arzt Client) "Patient" geschrieben wird, nicht "pacient". 2 .: Könnten Sie bitte den Code posten, in dem Sie die beiden Entitäten speichern? – Alexander
Vielen Dank für Ihre Antwort. Zuerst hatte ich die Entitäten in rumänischer Sprache und nachdem ich einen Refactor für die Verwendung von Englisch gemacht habe und ich vergessen die Entität "Pacient" :) sowieso aus technischer Sicht löste ich das Problem, wie ich unten beschrieben – Aditzu