Hiberante OneToOne, dlaczego nie działa?

Odpowiedz Nowy wątek
2015-03-04 09:58

Rejestracja: 12 lat temu

Ostatnio: 3 miesiące temu

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'.

edytowany 2x, ostatnio: Eiten, 2015-03-04 10:10

Pozostało 580 znaków

ŁF
2015-03-04 13:27
ŁF
Moderator

Rejestracja: 17 lat temu

Ostatnio: 15 godzin temu

0

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


Pozostało 580 znaków

2015-03-04 13:58

Rejestracja: 9 lat temu

Ostatnio: 3 lata temu

0

przydałyby się jeszcze skrypty z DB

Pozostało 580 znaków

Eiten_
2015-03-04 14:05
Eiten_
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.

Pozostało 580 znaków

ŁF
2015-03-04 16:22
ŁF
Moderator

Rejestracja: 17 lat temu

Ostatnio: 15 godzin temu

0

Pokaż sql obu tabel, z naciskiem na FK.


Pozostało 580 znaków

2015-03-05 14:37

Rejestracja: 7 lat temu

Ostatnio: 3 lata temu

0

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


...
Ale to są pola autoincrement. - ŁF 2015-03-05 14:44
Faktycznie, ort! :D - balu 2015-03-05 14:53

Pozostało 580 znaków

Pijany Samiec
2015-03-05 14:52
Pijany Samiec
0

Faktycznie nie doczytałem

edytowany 1x, ostatnio: ŁF, 2016-12-13 18:26

Pozostało 580 znaków

Odpowiedz

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