Infolation Önerileri: Yalnızca bir miras hiyerarşisinin seçilmiş varlıklarını seçin
Tipps Hibernate serisi, hazırda bekletme sorularını yaymak için hızlı ve basit çözümler sunuyor. Bu kez bir miras hiyerarşisinden tek bir varlığın hedefli seçimidir.
Sormak:
Alan adımda kalıtsal bir hiyerarşi modelledim ve bu hiyerarşinin sadece belirli bir sınıfını bir sorguda seçmek istiyorum. JPQL bu tür sorguları destekler mi?
Çözüm:
JPA 2.1 ile Tedavi-Jpql sorgu ve kriterler tanıtıldı. Bununla, bir süper sınıfın bireysel türevlerini seçmek mümkündür.
Aşağıdaki örnekte, yazarlar farklı yayın türleri, örneğin kitaplar veya blog makaleleri yayınlayabilirler. Bu varlıklarla kullanılabilir Yazar VE Yayın Çoklu bir molti ilişkisinde bulunan model. Ayrıca, varlıklar Kitap VE Blog gönderileri Sınıf türevleri olarak Yayın oluşturuldu.

Bu model temelinde, aşağıdaki sorgu başlığı “Java” kelimesini içeren tüm yazarları ve kitaplarını seçer. Ayrıca, süper sınıf Yayın Yardımıyla Tedavi-Biryalarında operatörler Kitap öğle yemeği.
List<Object[]> result = em.createQuery("SELECT a, p FROM Author a JOIN a.publications p WHERE treat(p AS Book).title LIKE '%Java%'").getResultList();
Hazırda Geri Gösterim İpuçları – Kitap
Basit ve karmaşık haritalama tanımları, kayıt, Java 8'in desteği, önbellekte depolama ve statik ve dinamik üretim gibi konularda bunların 70'ten fazla tarifi “İbernament Önerileri: Artı Ortak Karga Sorunlarına 70 Çözüm” kitabımda mevcuttur. Amazon'da cep ve e-kitap ve hibernate-tips.com'da PDF olarak mevcuttur.
()