Ich versuche, eine Vererbung mit TABLE_PER_CLASS Strategie zu erstellen, aber ich möchte verschiedene Primärschlüssel für jede Tabelle haben ist es möglich?Hibernate Vererbung mit anderen Primärschlüssel
Ich habe eine Klasse Register, die Millionen von Instanzen hat, einige dieser Instanzen sind "spezielle" und haben unterschiedliche Regeln für ihre Spalten und zusätzliche Spalten.
@MappedSuperclass
public abstract class Register {
@Id
@Column(nullable = false, unique = true, updatable = false)
private Long userId;
private Date checked;
@Column(nullable = false)
private RegisterState tipo;
}
@Entity
@AttributeOverrides({ @AttributeOverride(name = "userId", column = @Column(nullable = false, unique = false, updatable = false)) })
public class PotencialRegister extends Register implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(length = 64, nullable = false, unique = false)
private String referer;
}
Für die Grundregister Ich brauche ein ID-Attribut nicht, weil ich eine eindeutige Spalte haben, aber für die spezialisierte Einheit, die Spalte nicht eindeutig zuzuordnen sind, so habe ich ein zusätzliches Attribut.
das Problem, dass Hibernate ist die übergeordnete ID erstellt einen zusammengesetzten Primärschlüssel (das generierte Schema ist):
create table PotencialRegister (
id integer not null,
userId bigint not null,
checked datetime(6),
tipo integer not null,
referer varchar(64) not null,
primary key (id, userId)
)
create table Register (
userId bigint not null,
checked datetime(6),
tipo integer not null,
primary key (userId)
)
Die Säulen sind rechts und die Schama ist, was ich will, aber ich möchte Entfernen des Members "ID" aus dem Primärschlüssel "Po- tivencialRegister".
Werden in der Antwort immer noch Probleme angezeigt? – Ravik