@ManyToOne

JJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

Heyka. Mam zwykłą relację @ManyToOne.

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "lead_id")
private Project project;

Wiem, że lead_id ma być foreign key. A czy nie wystarczy, że jest unique i nie jest nulem, ale nie jest kluczem?

NoZi
  • Rejestracja: dni
  • Ostatnio: dni
3

Ale chyba o to chodzi żeby mieć constraina bo wtedy możesz włożyć jakikolwiek id lub usunąć to zostawi bazę w niespójnym stanie

nowyworek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: świat
  • Postów: 174
1
JajkoJajeczny napisał(a):

Heyka. Mam zwykłą relację @ManyToOne.

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "lead_id")
private Project project;

Wiem, że lead_id ma być foreign key. A czy nie wystarczy, że jest unique i nie jest nulem, ale nie jest kluczem?

Nie

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5549
0

A czemu Co przeszkadza że lead_id ma być foreign key?

JJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

lead_id nie może być primary key z innych wzgledow (strasznie dużo relacji, dużo zmian byłoby, dużo roboty), a z tego co się orientuję to primary key moze być co najwyżej jeden na tabeli. Co mogę zrobić? Dzięki!

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5549
0
JajkoJajeczny napisał(a):

lead_id nie może być primary key z innych wzgledow (strasznie dużo relacji, dużo zmian byłoby, dużo roboty), a z tego co się orientuję to primary key moze być co najwyżej jeden na tabeli. Co mogę zrobić? Dzięki!

Zaraz. Czy to znaczy że lead_id nie jest kluczem głównym w tabeli Projects. To co tam jest kluczem głównym? Dlaczego nie możesz łączyć po kluczu tylko próbujesz po jakiejś innej kolumnie?

JJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

*Zaraz. Czy to znaczy że lead_id nie jest kluczem głównym w tabeli Projects. To co tam jest kluczem głównym? *

project_id. Jest to tabela projektów, w którą są włożone leady.(Nie pytaj czemu... bo nie wiem)

Dlaczego nie możesz łączyć po kluczu tylko próbujesz po jakiejś innej kolumnie?

Robię import leadów. Importuje w entity leads, która ma 3 kolumny; id i lead_id (external id) i delivery managera id. Sensowne byłoby nakreślić w niej relację z z entity project.
Dzięki!

JJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0
JajkoJajeczny napisał(a):

*Zaraz. Czy to znaczy że lead_id nie jest kluczem głównym w tabeli Projects. To co tam jest kluczem głównym? *

project_id. Jest to tabela projektów, w którą są włożone leady.(Nie pytaj czemu... bo nie wiem)

Dlaczego nie możesz łączyć po kluczu tylko próbujesz po jakiejś innej kolumnie?

Robię import leadów. Importuje w entity leads, która ma 3 kolumny; id i lead_id (external id) i delivery managera id. Sensowne byłoby nakreślić w niej relację z z entity project.
Dzięki!

Dobra dodaję do entity leads również kolumnę project_id. Chrzanię to. Jakiś lepszy pomysł może? Dziękować.

nowyworek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: świat
  • Postów: 174
1

Ten cały schemat jest jakiś dziwny. Jeśli masz tabele projects to powinieneś mieć coś takiego @JoinColumn(name = "project_id").
Pokaż całe Twoje encje najlepiej także z polami @Id, bo może to co szukasz to @Embedded

JJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0
nowyworek napisał(a):

Ten cały schemat jest jakiś dziwny. Jeśli masz tabele projects to powinieneś mieć coś takiego @JoinColumn(name = "project_id").
Pokaż całe Twoje encje najlepiej także z polami @Id, bo może to co szukasz to @Embedded

Wieczorem wkleję! Dzięki!

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.