Вы можете сделать это с помощью стратегии наследования 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).