Спящая сущность абстракция - PullRequest
0 голосов
/ 16 октября 2018

У меня есть два класса Team и User:

@Entity
@Table(name = "team")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Team  extends AbstractAuditingEntity implements Serializable, Participant {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
    @SequenceGenerator(name = "sequenceGenerator")
    private Long id;

И

 @Entity
    @Table(name = "user")
    @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
    @org.springframework.data.elasticsearch.annotations.Document(indexName = "user")
    public class User extends AbstractAuditingEntity implements Serializable, Participant {

        private static final long serialVersionUID = 1L;

        @Id
        @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
        @SequenceGenerator(name = "sequenceGenerator")
        private Long id;

Я хочу создать новую сущность Match.Матч может иметь 2 участника.Участник может быть командой или пользователем.Я хочу создать абстракцию, чтобы я мог добавить команду или пользователя в качестве участника.Я хотел создать участника интерфейса и сопоставить его с @MappedSuperclass, а затем командой и пользователем для реализации участника, но я получил ошибку:

org.hibernate.AnnotationException: @OneToOne или @ManyToOne в ссылках Match.participantFirstнеизвестное лицо: участник

@MappedSuperclass
public interface Participant {

}

1 Ответ

0 голосов
/ 16 октября 2018

Полезная ссылка: Интерфейсы с аннотациями гибернации & http://docs.jboss.org/hibernate/core/3.3/reference/en/html/inheritance.html#inheritance-tableperconcrete

Использование XML-сопоставления может помочь в соответствии с документацией,

If your superclass is abstract, map it with abstract="true". If it is not abstract, an additional table (it defaults to PAYMENT in the example above), is needed to hold instances of the superclass. 
...