@Embeddable
@MappedSuperclass
public class Address {
private String street;
private String city;
public String getStreet(){ return street;}
public String getCity(){ return city;}
public String setStreet(Sting street){ this.street= street;}
public String setCity(String city){ this.city=city;}
}
import org.hibernate.annotations.Entity;
@Entity
public class AddressHistory extends Address {
Long id;
@Id @XmlTransient
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return m_id;
}
public void setId(Long m_id) {
this.m_id = m_id;
}
}
这是我的场景,我想存储一个人的地址。而且我还必须存储一个人以前住过的所有地址。所以我正在做的是将当前地址嵌入到个人表中,并希望将他/她的所有先前地址存储在历史表中。为达到这个。我将 Address 类嵌入到 person 表和 HistoryAddress 表中。但就 OOPS 概念而言。HistoryAddress 是一个地址,因此将 Address 类组合成 AddressHistory 是不好的。然后我决定从 Address 类扩展 AddressHistory。但是当我这样做时,休眠给了我这个错误
Use of @OneToMany or @ManyToMany targeting an unmapped class AddressHistory.
但显然我已经映射了 AddressHistory 我们可以这样做吗?我们可以从嵌入式类扩展实体吗?