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

  • BruBearBaby

    BruBearBaby

    25 Ocak 2011
  • Dellbear816

    Dellbear816

    4 Mart 2008
  • Joshua Bane

    Joshua Bane

    24 Temmuz 2007