SORU
1 Aralık 2008, PAZARTESİ


JPA Birden fazla Gömülü alanları

Olası iki gömülü içeren JPA varlık sınıfı (@Embedded) alanlar için mi? Bir örnek olacaktır:

@Entity
public class Person {
    @Embedded
    public Address home;

    @Embedded
    public Address work;
}

public class Address {
    public String street;
    ...
}

Bu durumda Person Address iki örneği - ev ve iş içerebilir. Hazırda uygulaması ile JPA kullanıyorum. Şema Hazırda Araçları kullanarak oluşturmak için, sadece 6* *bir gömer. İki tane Address örnekleri, öncesi beklemedeki bazı önek ile bir sütun adları ayırt edici her or (ev ve iş gibi) yerleştirilmiştir. @AttributeOverrides ama bu her nitelik ayrı ayrı geçersiz olmasını gerektirir biliyorum. Bu ise gömülü nesne (Address) Her bir sütun ayrı ayrı geçersiz kılınması gerekiyor kadar büyük olursa hantal alabilirsiniz.

CEVAP
12 ŞUBAT 2012, Pazar


Bunu yapmak için genel JPA yolu @AttributeOverride. Bu hem EclipseLink ve Hazırda içinde çalışması gerekir.

@Entity 
public class Person {
  @AttributeOverrides({
    @AttributeOverride(name="street",column=@Column(name="homeStreet")),
    ...
  })
  @Embedded public Address home;

  @AttributeOverrides({
    @AttributeOverride(name="street",column=@Column(name="workStreet")),
    ...
  })
  @Embedded public Address work;
  }

  @Embeddable public class Address {
    @Basic public String street;
    ...
  }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • eisleyhead

    eisleyhead

    11 Ocak 2006
  • Ryan Billy

    Ryan Billy

    30 EKİM 2006
  • schmittastic

    schmittastic

    9 EYLÜL 2009