EclipseLink'i JPA sağlayıcısı olarak kullanıyorum. Ayrıca aşağıdaki TABLE_PER_CLASS miras yapısınıJPA TABLE_PER_CLASS devralma: Yalnızca süper sınıf girişlerini SELECT nasıl?
@javax.persistence.Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@NamedQueries({
@NamedQuery(name=Parent.QUERY_FIND_ALL, query="SELECT p FROM Parent p")
})
public class Parent {
// the class code follows here
}
@javax.persistence.Entity
@NamedQueries({
@NamedQuery(name=Child.QUERY_FIND_ALL, query="SELECT c FROM Child c")
})
public class Child extends Parent {
// the class code follows here
}
sorun kullanıyorum şimdi sadece ebeveyn sınıfın girişlerini almak istediğiniz olmasıdır. Ancak "SELECT p FROM Parent p" adlı sorgu ile alt tablodaki tüm girişler de döndürülür. aşağıdaki gibi
seçme ya da bulabilirsiniz kodudur:
public List findWithNamedQuery(String query) {
return em.createNamedQuery(query).getResultList();
}
Bu şekilde, sorgu, yani "Ana P'den SEÇİMİ s" dir.
Bu inheritacne hiyerarşisinin tüm girdilerini değil, yalnızca ana girdileri nasıl alabilirim?
Kısaca: Tüm alt girdileri el değmeden nasıl bırakabilirim ve yalnızca ana girişleri geri alabilir miyim?
DÜZENLEME 1:
Ben EclipseLink 2.0.1 kullanıyorum, ama her zaman, tip ifadesi yoluyla axtavt en çözümü deneyin aşağıdaki hatayı alıyorum:
"Invalid Type Expression on [my.domain.Parent]. The class does not have a descriptor, or a descriptor that does not use inheritance or uses a ClassExctractor for inheritance".
Ben de güncelledik EclipseLink'in en son kararlı sürüm 2.1.1'ine kadar, ancak sorunu çözmüyor.
cevabı Hiç bu anlamaya mı Ayrıca bkz? Ben de aynı şeyi yapmaya çalışıyorum. Sorgum için yalnızca üst satırların döndürülmesini istiyorum ancak çocuk satırları da döndürülüyor. –
Bu sorudaki herhangi bir güncellemeyi mi arıyorsunuz? –