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

  • Simon Hayter

    Simon Hayter

    20 HAZİRAN 2010
  • superemposed

    superemposed

    25 Aralık 2007
  • The CGBros

    The CGBros

    20 AĞUSTOS 2011