Hibernate - сохраняющиеся полиморфные соединения - PullRequest
7 голосов
/ 28 мая 2010

Я пытаюсь понять, как лучше всего реализовать полиморфный один-ко-многим в спящем режиме.

Например:

@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 {}

А теперь я хотел бы также сохранить информацию аудита со следующим классом:

@Entity
public class AuditEvent {
    @ManyToOne // ?
    BaseEntity entity;
}

Какое отображение подходит для auditEvent.entity? Кроме того, как Hibernate действительно сохранится? Будет ли создан ряд таблиц соединения (AuditEvent_Author, AuditEvent_Post, AuditEvent_Comment) или есть лучший способ?

Обратите внимание, я бы предпочел, чтобы мои другие классы сущностей не отображали другую сторону соединения (например, List<AuditEvent> events на BaseEntity) - но если это самый чистый способ реализации, то этого будет достаточно. 1017 *

1 Ответ

5 голосов
/ 28 мая 2010

Сопоставленный суперкласс не является сущностью и, следовательно, не может быть частью ассоциации (как указано в EJB-199 ). Так что либо:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...