9 Kasım 2017 Perşembe

Hibernate Restrictions Sınıfı

Giriş
Şu satırı dahil ederiz.
import org.hibernate.criterion.Restrictions;
Criteria sınıfı ile en çok ilişkisi olan bir diğer sınıf ise Restriction sınıfıdır. Bu sınıf SQL dilindeki where kısıtına denk gelir.
between metodu - Bir alanı verilen değerler aralığında arama
Şöyle yaparız.
criteria.add(Restrictions.between("FromDate", searchFromDate, searchToDate));
eq metodu - Bir alanı verilen değerin eşitliği ile arama
Criteria içindeki bir alanın verilen değere eşit olanlarının getirilmesini sağlar.
Örnek
uid alanına göre sorgulamak istersek şöyle yaparız.
cr.add( Restrictions.eq("uid", id));
Örnek
Verilen değer string ise büyük küçük farklılığına dikkat etmeden arama için şöyle yaparız.
Criteria criteria=session.createCriteria(ItemHolder.class);
criteria.createAlias("items", "item"); 
criteria.add(Restrictions.eq("item.Name", "my Item").ignoreCase());
ilike metodu - Harf farkına bakmaksızın benzerlik ile arama
Şöyle yaparız
Criteria criteria = sessionFactory.getCurrentSession()
                .createCriteria(Product.class, "product")
                .add(Restrictions.ilike("product.name", "%" + name + "%"))
                .add(Restrictions.ilike("product.code", code))
                .setProjection(Projections.property("product.name").as("name"));
like metodu - Bir alanı verilen değerin benzerliği ile arama
Restrictions.like ile bir çok alternatif mevcut. Aşağıdaki örnekte başlangıcı W olan kayıtlar aranıyor
criteria.add(Restrictions.like( "TITLE.title", "W", MatchMode.Start ));
Bir başka örnekte ise içinde W harfi geçen kayıtlar aranıyor
criteria.add (Restrictions.like("TITLE.title", "W"MatchMode.ANYWHERE));
Benzer işlemin HQL ile yapılması örneği ise burada.
sqlRestriction metodu
Şöyle yaparız.
String SELECT_RANDOM_QUOTE = "SELECT * FROM ...";
criteria.add(Restrictions.sqlRestriction(SELECT_RANDOM_QUOTE)); 

Hiç yorum yok:

Yorum Gönder