Bu tuhaf diyagramı anladığımdan emin değilim ... RegionLanguage'ın bir tür dış anahtarı var. Bölgede yalnızca bir sütun varsa ('şemada gösterildiği gibi), sadece' RegionLanguage 'ile eşleştirebilirsiniz ve istediğiniz gibi yalnızca bir varlığa sahip olursunuz --- hiçbir bilgi kaybolmaz;).
Fakat cidden, nasıl haritalanmasını istersiniz? Böyle
class Region {
//.. the missing fields not shown in diagram
List<String> languages; // take only language to avoid creating separate entity for region language
}
falan: Eğer böyle bir şey var mı istiyorsunuz, tabloların geri kalanı i18n tablolarla birleştirilir nasıl söylemedi Her durumda
class RegionInnerJoinRegionLanguage {
// all fields from Region
// all fields from RegionLanguage
}
. Açıklamanızdan, tüm tabloların RegionLanguage'e fk olduğunu tahmin ediyorum. Bölge tablosunun şeylerin büyük planında kullanıldığından emin değilim. Sanırım bu sadece dilleri gruplamak için… Ben bu 'modelleri' İsviçre'yi hayal ediyorum (bir 'bölge' 4 dil) ... Ama çeşitli bölgelerde konuşulan dillerle ne yapacaksınız? Birkaç tane Fransızca, İngilizce, vb. Dilleriniz olacak mı (her bölge için bir tane) ve tüm veriler bunlarla çarpılacak mı?
Bunu sormak istemediğini biliyorum ... Sadece bu soru için veri yapınızı çok basitleştirdiğini düşünüyorum ... Öyle ki, gerçekten neyi başarmak istediğinizi tahmin etmek zor. Eğer dizeleri yaklaşımının listesini kullanmak istiyorsanız Her durumda
, bunu deneyebilirsiniz: Eğer tek bir varlık haline hem tabloları koymak istiyorum neden
@ElementCollection
@CollectionTable(name="RegionLanguage",
[email protected](name="regionID") // or whatever... it's not on your diagram.
)
@Column(name="langage")
private List<String> langages;
Hala anlamıyorum .. Eğer 'salt okunur' verilerse, bir görünüm oluşturmayı ve haritalamayı deneyebilirsiniz --- her zaman 'çıkış';). Ama (her ikisi de, aslında) biraz fazla komplikasyon, aklıma - seni gelecekte ısıracak. Benim tavsiyem 'basit OneToMany haritalaması' ile devam etmektir.
Bu sorun için bir çözüm buldunuz mu? Ve eğer öyleyse, paylaşır mısın (bir cevap olarak)? Aynı sorunla karşı karşıyayız, henüz hoş bir çözüm bulamadık (en çok N + 1 sorguları, kesinlikle istemiyoruz). – wimvds
Hangi JPA sağlayıcısı kullanıyorsunuz? – siebz0r
Bölge ve RegionLanguage arasındaki basit bir @OneToMany ilişkisinin sizin için neden çalışmadığını tam olarak anlamıyorum. –