Próbuję zrozumieć, jak najlepiej zaimplementować polimorficzny jeden-do-wielu w stanie hibernacji.Hibernate - Trwałe połączenia polimorficzne
Np
@MappedSuperclass
public class BaseEntity {
Integer id;
// etc...
}
@Entity
public class Author extends BaseEntity {}
@Entity
public class Post extends BaseEntity {}
@Entity
public class Comment extends BaseEntity {}
A teraz chciałbym również utrzymują informacje z kontroli, z następujących klas:
@Entity
public class AuditEvent {
@ManyToOne // ?
BaseEntity entity;
}
Co jest właściwe odwzorowanie dla auditEvent.entity
? Również, w jaki sposób Hibernate faktycznie to wytrzymuje? Czy wygenerowany zostanie szereg tabel łączenia (AuditEvent_Author
, AuditEvent_Post
, AuditEvent_Comment
), czy jest lepszy sposób?
Uwaga, wolałbym, aby moje pozostałe klasy encji nie ujawniały drugiej strony łączenia (np., List<AuditEvent> events
na BaseEntity
) - ale jeśli jest to najczystszy sposób implementacji, wystarczy.