2016-04-08 18 views
1

Aşağıdaki sorun var ve nasıl çözülmez.JPA 2.0'da Depolanmış Yordamı Yürütün

@NamedNativeQuery(name = "my_stored_proc",query = "? = exec EMIR_GUI.get_OTCLite_ACKNACK_Report ?", resultClass = EmirFacade.class) 
@Entity 
public class EmirFacade { 
@Column(name="MessageType", nullable=false) 
@Basic(fetch = FetchType.EAGER) 
private String mesageType; 

Benim Fasulye: 2008. Sonra bir @NamedNativeQuery ile @Entity sınıf var benim MSSQL Server: Bir parametrenin (yyyy-AA-gg biçiminde bir tarih) ile bir saklı yordam var hep aşağıdaki hata iletisini geri almak, Şimdi

@PersistenceContext(unitName=Globals.__TWHUNITNAME) 
private EntityManager em; 

public List<EmirFacade> get_EmirReport(Date date) { 
    try { 
     @SuppressWarnings("unchecked") 
     Query q = em.createNamedQuery("my_stored_proc").setParameter(1, date); 
     List<EmirFacade> emir_report = q.getResultList(); 
     //List emir_report = q.getResultList(); 
     return emir_report; 
    } catch (Exception e) { 
     return Collections.emptyList(); 
    } 
} 

(o Alman olduğunu, bu yüzden o kadar iyi elimden geldiği kadar çevirmek zorunda) Endeksi "0" aralık dışında: sınıf buna benzemez.

Neredeyse her şeyi denedim ama sorunumu çözmenin bir yolunu bulamıyorum.

Belki, birinin benim için iyi bir öneri var mı?

Çok teşekkür ederim! sadece yapabileceği JPA 2.1 geçebilirsiniz (ve şiddetle bunu öneririm) Eğer

cevap

1

:

StoredProcedureQuery storedProcedure = em.createStoredProcedureQuery("yourStoredprocedure"); 
    // set parameters 
    storedProcedure.registerStoredProcedureParameter("parameterName", String.class, ParameterMode.IN); 
    storedProcedure.setParameter("parameterName", "yourParameter"); 
    // execute stored procedure   
    storedProcedure.execute(); 

aksi takdirde biraz daha kıvrık, sadece this tutorial izleyin.

+0

Çok teşekkür ederim, sonra JPA 2.1'i nasıl bütünleştirebileceğimi görmem gerekiyor. Eski yolu denedim, ben de çok aşina değilim. Bu yana, JPA için çok fazla kullanmıyorum. JPA 2.1 Ben zaten projeme nasıl ekleyeceğimi öğrenmek için problemim var. – user3003944

+0

Strange, hibernate-jpa-2.1-api-1.0.0.final.jar'ı projekt'ime ekledikten ve StoredProcedureQuery'yi koduma kopyaladıktan sonra, entitymanager'ım (em) createStoredProcedureQuery için herhangi bir başvuruda bulunmuyor - belki, bir şey Başka? – user3003944

+0

@ user3003944 Eğer 4.3 sürümünden bu yana JPA sağlayıcısı olarak Hibernate kullanıyorsanız, JPA 2.1 kullanılabilir. –