Можно ли отобразить суперкласс и подкласс по отношениям OneToOne в Hibernate? - PullRequest
1 голос
/ 19 февраля 2011

Можно ли сопоставить подкласс со своим суперклассом с помощью отношений OneToOne на основе их свойств первичного ключа в Hibernate? Как я могу это реализовать?

Ответы [ 2 ]

2 голосов
/ 19 февраля 2011

Вы можете сделать это с помощью стратегии наследования JOINED следующим образом:

@Entity
@Inheritance(strategy=InheritanceType.JOINED)
public class Cat implements Serializable {

  private int id;

  @Id
  @GeneratedValue
  public int getId() { 
    return id;
  }

  public void setId(final int id) {
    this.id = id;
  }
}

@Entity 
public class DomesticCat extends Cat {

  private String name;

  public String getName() { 
    return name;
  }

  public void setName(final String name) {
    this.name = name;
  }
}

Таким образом, идентификатор будет как в таблице cat, так и в таблице domesticcat, в качестве первичного ключаи с внешним ключом между ними.Это дает вам отношение один к одному (без использования @OneToOne).

1 голос
/ 19 февраля 2011

Вы должны взглянуть на Отображение наследования в справочнике Hibernate, чтобы понять отображение наследования.

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