Hiberante OneToOne, dlaczego nie działa?

0

Witajcie,

Chciałbym zrobic asoscjajce OneToOne, jednak nie moge rozgryźć błędu. Mam dwie tabele:

Bank
ID (klucz główny)
Nazwa (Typu string)

Konto
ID (klucz główny)
Konto (typu String)

Tabele połączyłme relacją jeden do jeden, a na kolumnach ID ustawiłem autonumeracje bazy danych.

A to moje klasy:

@Entity
@Table(name = "Konto")
public class Konto implements Serializable 
{
    
 @GenericGenerator(name = "generator", strategy = "foreign", parameters = @Parameter(name = "property", value = "konto"))
 @Id
 @GeneratedValue(generator = "generator")
 @Column(name = "ID", unique = true, nullable = false)
 private int id;

 @Column(name = "Konto")
 String konto;
 
 @OneToOne(fetch = FetchType.EAGER)
 @PrimaryKeyJoinColumn
 Bank bank;
@Entity
@Table(name = "Bank")
public class Bank implements Serializable 
{
@Id
@GeneratedValue(strategy = IDENTITY)
@JoinColumn(name = "ID", unique = true, nullable = false)
private int id;

@Column(name = "Nazwa")
String nazwa;

@OneToOne(fetch = FetchType.EAGER, mappedBy = "bank", cascade = CascadeType.ALL)
Konto konto;

Nie porafie rozgryżc dlaczego to nie dizała, może ktoś z większą wiedzą pomoże.
Błąd: ERROR: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Bank_Konto". The conflict occurred in database "ExProF", table "dbo.Konto", column 'ID'.

0

W którym polu tabeli Konto znajduje się identyfikator banku (Bank.ID)?

0

przydałyby się jeszcze skrypty z DB

0

Chciałbym aby była to relacja jeden do jeden po kolumnach ID.

Gdy dodaje wierasz z nr 1 w tabeli Banku, chciałbym aby dodał się wiersz z nr 1 w tabeli Konto. Nie ma specjalnej tabeli identyfikującej, jest to jeden do jeden po kolumnach ID. Przeczytałme juz mase takich tutoriali na których to ludziom działa, jednak w moim przypadku jakoś niebardo.

0

Pokaż sql obu tabel, z naciskiem na FK.

0

Miałem kiedyś podobny problem. Ustawiałeś w bazie dla tych pól ON UPDATE CASCADE ?

0

Faktycznie nie doczytałem

1 użytkowników online, w tym zalogowanych: 0, gości: 1