5 Mayıs 2017 Cuma

Query Sınıfı

constructor
EntityManager tarafından yaratılır.
String hql = "...";
Query query = session.createQuery(hql);
executeUpdate metodu
Nesneyi günceller. Şöyle yaparız.
Employee employee= (Employee)entityManager.find(Employee.class , 1);
 entityManager
     .createQuery("update Employee set name = \'xxxx\' where id=1")
     .executeUpdate();
getResultList metodu
Untyped List nesnesi yani generics kullanmayan List döner. Şöyle yaparız.
for(Object row : (List<Object>) q.getResultList()){
  ...
}
getSingleResult metodu
Select cümlesini çalıştırarark tek bir nesne döndürür.
Status status = query.getSingleResult();
Eğer sonuç tek değilse exception atılır.
Query query = ...
try{
  return q.getSingleResult();
}catch(NoResultException| EntityNotFoundException enfex){
  return null;
}catch(NonUniqueResultException ex){
  return null;
}
}
list metodu
join fetch ile şöyle yaparız. Join Fetch lazy olan OneToMany ilişkilerde eager veri çekmek için kullanılır.
Query query = session.createQuery("select c from Category c join fetch c.events 
  where c.parentCategory.categoryId = 1");
//query.setParameter("id", id);
List<Foo> list = query.list();
setFirstResult metodu
Şöyle yaparız.
query.setFirstResult(...);
setMaxResults metodu
Şöyle yaparız.
query.setMaxResults();
setParameter metodu - named parameter
Parametreler :name şeklindedir. Sql cümlesi içinde parametrelere ismen erişir ve değer atar. Şöyle yaparız.
query.setParameter("param1",...);
setParameter metodu - ordinal parameter
Parametreler ?index şeklindedir. Şöyle yaparız.
Date lastWeekDate = ...;

em.createQuery("SELECT o from Orders o WHERE o.orderDate > ?1")
  .setParameter(1, lastWeekDate, TemporalType.DATE);
scroll metodu
Select cümlesinin sonucunu dolaşabilmemizi sağlar. Şöyle yaparız.
ScrollableResults resultScroll = query.scroll(ScrollMode.FORWARD_ONLY);

Hiç yorum yok:

Yorum Gönder