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

  • Andrew_Huang

    Andrew_Huang

    10 ŞUBAT 2006
  • boniver

    boniver

    17 NİSAN 2006
  • TheDroidDemos

    TheDroidDemo

    15 ŞUBAT 2011