numaralı bilgisayarda ikincil tabloda ayrımcı sütunu bulundurmak mümkün mü Şu anda var olan bir db şemasını jpa öğelerine eşlemekle uğraşıyorum ve çok fazla tuhaflık arasında, bu sorun üzerinde sıkışıp kaldım.Jpa
Buna benzer iki tablo var:
tablo 1'deservicetype
tabloda iki hizmet türü için yabancı anahtar olduğunu
Table 1 Table 2
|Service | |Servicetype |
|servicetype | |Servicecategory |
| | | |
. Ancak, tablo 1'deki hizmetler, hangi kategoriye ait olduklarına göre çok farklı bir davranışa sahiptir (100'den fazla hizmet birimi vardır, yalnızca 4 kategori vardır) Tablo 1'i eşleyebilmek istiyorum. Hizmet türlerinin kategorisine göre dört farklı varlık sınıfı. çalışmayan bir farklı discriminatorvalue
ile, bundan buth uzanan
@Entity
@Table(name = "table1")
@DiscriminatorColumn(name = "servicecategory", discriminatorType =
discriminatorType.INTEGER)
@DiscriminatorValue("1")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@SecondaryTable(name = "table2",
pkJoinColumns =
@PrimaryKeyJoinColumn(name = "servicetype", referencedColumnName =
"servicetype"))
public class AbstractService implements Serializable {
...etc
Ve 4 sınıfları, EclipseLink beri kullanıyorum, hangi arama çalışır:
Bu
Bugüne kadar ne var Tablo 1'de hizmetkategorinin değeri.Jpa ile böyle bir eşleştirmeyi ifade etmek mümkün mü yoksa her sorguda "where servicecategory = ?
" ile eşleştirmeyi yapmalı mıyım?
Tanımdaki tablo ve sütun adını belirtmeyi denediniz mi? "table2.servicecategory" – Chris
Diskriminatorcolumn ek açıklamada? Evet. Ancak oluşturulan sorgu zaten bir takma ad ile tabloyu belirtir, bu yüzden sadece cevabınız için teşekkürler tablealias.table2.servicecategory – vruum