2013-08-10 18 views
5

Ben dışarı son derece garip davranışlar alıyorum ben sever, arayan bir sorgu oluşturmak çalışıyorum JPA 2.0org.hibernate.QueryException: tüm adlandırılmış parametreleri ayarlanmış değil: []

nerede employeId ve empDepartment java argümanları

Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId = :empId and e.empDepartment = :empDepartment"); 
query.setParameter("empId" ,employeId); 
query.setParameter("empDepartment",empDepartment); 

ama ilk defa yukarıdaki sorgu çalışmıyor, yukarıdaki hatayı oluşturan ama yine aynı yöntemi trigged zaman ikinci kez her şey bu her zaman olur, sorunsuz gitti geçerek uzun değerlerdir Bunun nedeni ne olabilir?

+1

Bize bunun gerçekleştiği tüm yöntemi gösterebilir misiniz? – chrylis

+1

Sorguları ilk defa çalıştırılmasını engelleyen "query.setParameter" çağrılarının etrafında bazı "if" ifadeleri olmalıdır. @chrylis'in önerdiği gibi tüm yöntemi gönderebilir misiniz? –

cevap

0

Bu deneyebilirsiniz:

Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId = ? and e.empDepartment = ?"); 
query.setParameter(1, employeId); 
query.setParameter(2, empDepartment); 

yanı sorgu içeriği ile ilgili bir sorun olabilir daha bu değil parametrelerin değiştirilmesi ile, ya çalışmıyorsa. Belki türler doğru değildir. Parametre türü bağlam tarafından çıkarılmıştır.

+1

Merhaba Cevabınız için teşekkürler – user2670113

0
Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId=:empId and e.empDepartment=:empDepartment"); 

query.setParameter("empId" ,employeId); 
query.setParameter("empDepartment",empDepartment); 

Bunun sebebinin ne olduğunu bilmiyorum ama bir kez başıma geldi. Bunu böyle dene. Sadece =) empId ve diğer parametreler arasındaki boşlukları kaldırın.

İlgili konular