Я пытаюсь добавить информацию в 2 таблицы с аннотацией один к одному.
Как вы можете видеть, voice_id и voter_sinNumber не вставляют внешние ключи.вот мои методы dao.java
public void addVoter(Voter voter) {
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(voter);
session.getTransaction().commit();
session.close();
}
public void addVote(Votes votes) {
Session session = sessionFactory.openSession();
session.beginTransaction();
Voter voter = new Voter();
voter.setVotes(votes);
votes.setVoter(voter);
session.save(votes);
session.getTransaction().commit();
session.close();
}
И вот как я провозглашаю Избиратель и голоса:
Votes.java:
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
public class Votes implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
private int id;
private String party;
public Votes(String party) {
this.party = party;
}
@OneToOne
private Voter voter;
}
Voter.java:
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@NamedQuery(name="Voter.byName", query="from Voter where sinNumber=:sinNumber")
public class Voter implements Serializable{
@Id
private int sinNumber;
private String fname;
private String lname;
private int year;
private int month;
private int day;
private String address;
@OneToOne
private Votes votes;
public Voter(int sinNumber, String fname, String lname,
int year, int month, int day, String address) {
this.sinNumber = sinNumber;
this.fname = fname;
this.lname = lname;
this.year = year;
this.month = month;
this.day = day;
this.address = address;
}
public Voter(String fname, String lname, int year, int month, int day,
String address, Votes votes) {
this.fname = fname;
this.lname = lname;
this.year = year;
this.month = month;
this.day = day;
this.address = address;
this.votes = votes;
}
}
Выдает ошибку:
java.sql.SQLIntegrityConstraintViolationException: Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполняется (hibernatedb
. votes
,ОГРАНИЧЕНИЕ FKdyr88aepaxedeiivxepemku28
ИНОСТРАННЫЙ КЛЮЧ (voter_sinNumber
) ССЫЛКИ voter
(sinnumber
))