Spring & Hazırda bekletme özelliğini kullanarak webapp geliştiriyorum.Hazırda Bekletme - 1'e karşı 2 sütunu birleştirmenin bir yolu var mı?
Tablo 1: BaseTable
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| Id | bigint(20) | NO | PRI | | auto_increment |
| Serial1 | varchar(255) | YES | | NULL | |
| Serial2 | varchar(255) | YES | | NULL | |
| ModelNum | varchar(255) | YES | | NULL | |
| ... | .... | .. | 0 | | |
+------------+--------------+------+-----+---------+----------------+
Tablo 2: DetailTable
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| Id1 | varchar(20) | NO | PRI | | |
| Id2 | varchar(20) | NO | PRI | | |
| Id3 | varchar(20) | NO | PRI | | |
| Serial | varchar(255) | YES | | NULL | |
| ... | .... | .. | 0 | | |
+------------+--------------+------+-----+---------+----------------+
I Serisi göre tablolar katılmak gerekir. Table2
'daki Serial
, Serial1
veya Serial2
veya Table1
'dan gelen değerler içerebilir, bu nedenle OR operatörü gibi karşılaştırılmalıdır. Tablolar için hbm.xml kullanıyorum. Ek açıklama eşlemesi yok.
SELECT A.* FROM Table2 As a INNER JOIN Table1 As b
ON (a.Serial = b.Serial1 or a.Serial = b.Serial2);
Bu http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/associations.html geçti ama sadece 1 anahtar sütun kullanılıyor: Bunu daha önce Sorgu kullanıyordum
<one-to-one name="notes"
class="Notes" entity-name="Notes">
</one-to-one>
: Ben gibi tablolar katıldım.
Bu senaryo için HBM.XML'yi kullanmaya nasıl katılırım? Mümkün mü?
Örnek: T1.Serial1 A içerir, T1.Serial2 içerir B Table2, Serial A için bir, biri Seri B için iki satır vardır? Beklenen sonuçların nedir? Muhtemelen aynı tabloya iki kez katılır ve sonuçlarınızı taklit edebilirsiniz, ancak yanılmış olabilirim ... 'Tablodan * seçim T1 LEFT JOIN tablo2 T2A üzerinde T1A1. T1A.Ierial LEFT JOIN table2 T2B on T1.Serial = T2b.Serial' Bu, tablo 2'yi bir satır olarak tablo 1'de birleştirir. Bir OR kullanarak tablo1 ID başına birden fazla satır alırsınız ... belki de istediğiniz ... bu yüzden beklenen sonuçları görmeniz gerekir. – xQbert
Her iki satırı da seçmeli. –
@xQbert: Kullandığım Sorgu ekledim. İlkbahar/Hazırda Bekletme –