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;
}
Code: Select all
@Entity
@Table(name = "state")
public class State {
@EmbeddedId
private StatePK id;
private String label;
}
Code: Select all
@Embeddable
public class UserPK implements Serializable {
private Long id;
private Integer century;
}
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;
}
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?
Mobile version