Будьте в спящем режиме - Сохранение полиморфных соединений

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

Например:

@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? Кроме того, как Будет в спящем режиме, на самом деле сохраняют это? Был бы ряд объединяющих таблиц быть сгенерированным (AuditEvent_Author , AuditEvent_Post, AuditEvent_Comment), или есть ли лучший путь?

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

7
задан Marty Pitt 28 May 2010 в 12:27
поделиться

1 ответ

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

5
ответ дан 7 December 2019 в 12:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: