1
@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 なので、Address クラスを AddressHistory に合成するのは良くありません。次に、Address クラスから AddressHistory を拡張することにしました。しかし、この休止状態を行うと、このエラーが発生します

Use of @OneToMany or @ManyToMany targeting an unmapped class AddressHistory.

しかし、明らかに私は AddressHistory をマップしました これを行うことができますか? Embedded クラスから Entity を拡張できますか?

4

1 に答える 1