İki Tarih arama alanına sahip ve arasında. StartDate'in arama alanlarına girilen tarihler ile tarihler arasında bulunduğu kullanıcı tablosundan kayıtları almam gerekiyor ve eğer tarihler boşsa ve tarihler boşsa kullanıcı tablosundan tüm kayıtları almam gerekiyor.Hql'de iki tarih arasında dinamik olarak nasıl arama yapılır?
İşteFROM USER
WHERE
:start_flag =1
OR
STARTDATE between :from and :to
start_flag gelen ancak ve boş olan için 1 olarak ayarlanır int türünde:
Aşağıdaki hql sorgusu çalıştı. İştequery.setParameter("from",startDt);
query.setParameter("to",endDt);
query.setParameter("start_flag",startFlag);
l= query.list();
veri türleri şunlardır:
startDt - java.util.Date
endDt- java.util.Date
startFlag- int
Yukarıdaki sorgu çalıştırdığınızda ile eşit ve null ile aşağıdaki özel durumları elde ederim:
SQL hatası: 932, SQLState: 42000
ORA-00932: tutarsız veri türleri: beklenen TARİH
nasıl yukarıdaki işlevselliği elde etmek HQL sorgu yazmak için söyler misiniz İKİLİ var? Böyle
denedin 'setDate' (veya benzeri) yerine' setParameter' ait? Tarih türleri bir tarih sütuna doğru şekilde eşlenmiş mi (veya yanlışlıkla seri hale getirilmiş)? –
Hayır Ben setDate() denemedim ama setParameteer() – user2077648
çalışmalıyım NHibernate ile yaptığım deneyimde, öyle değil. –