Die eingebettete ID wird zum Teil als PK und zum anderen Teil als FK verwendetJava

Java-Forum
Anonymous
 Die eingebettete ID wird zum Teil als PK und zum anderen Teil als FK verwendet

Post by Anonymous »

Ich verwende eine Spring Boot-App.
Ich habe diese beiden Tabellen in meiner Datenbank. Ich fülle ein Beispiel für Daten aus, die diese Tabellen enthalten.
Tabellenbenutzer
Hier sind die Spalten id und century PKs und die Spalte state_id ist ein FK aus dem Tabellenstatus mit einer Referenz auf die Spalten-ID und century ist ebenfalls ein FK aus dem Tabellenstatus. Die Spalte „Jahrhundert“ ist also gleichzeitig ein FK und ein PK.



id
century
name
state_id




33
21
John Doe
1



Tabellenstatus
Hier sind die Spalten id und century beide Primärschlüssel der Tabelle



id
Jahrhundert
label




1
21
cold



Ich möchte diese beiden Tabellen als JPA-Entitäten modellieren, also habe ich es so gemacht:
StatePK.java:

Code: Select all

@Embeddable
public class StatePK implements Serializable {
private Long id;
private Integer century;
}
State.java:

Code: Select all

@Entity
@Table(name = "state")
public class State {

@EmbeddedId
private StatePK id;

private String label;
}
UserPK.java:

Code: Select all

@Embeddable
public class UserPK implements Serializable {
private Long id;
private Integer century;
}
User.java:

Code: Select all

@Entity
@Table(name = "user")
public class User implements Serializable {

@EmbeddedId
private UserPK id;

private String name;

@MapsId("century")
@ManyToOne(optional = false)
@JoinColumns(value = {
@JoinColumn(name = "century", referencedColumnName = "century"),
@JoinColumn(name = "state_id", referencedColumnName = "id")})
private State state;
}
Wenn ich die Anwendung starte, erhalte ich die folgende Fehlermeldung:

Fehler beim Erstellen der Bean mit dem Namen „entityManagerFactory“, definiert in der Klasse
Pfadressource
[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]:
[PersistenceUnit: default] Hibernate SessionFactory kann nicht erstellt werden;
verschachtelte Ausnahme ist java.lang.IllegalStateException: PostInitCallback
Warteschlange konnte nicht sein verarbeitet...\r\n - PostInitCallbackEntry -
EmbeddableMappingType(fr.xxx.User#{id})#finishInitialization

Wie kann ich diesen Fehler beheben?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post