Hibernate / Java Email

W tym artykule znajdują się przykłady oraz opisy najczęściej wykorzystywanych funkcjonalności Hibernate. Nie znajdziesz tu wszystkich możliwości biblioteki! Jeżeli potrzebujesz więcej informacji na ten temat zapraszam do odwiedzenia oficjalnej strony https://www.hibernate.org/.

 

Zapis do bazy danych:

Praca na wcześniej przygotowanej klasie ObjectInBase.

Session h_session = h_factory.openSession();
Transaction h_transaction = h_session.beginTransaction();
ObjectInBase ob = new ObjectInBase();
ob.setStatus(2);
ob.setNazwa("Sznurek 15m");
ob.setPrice(150);
h_session.save(ob);
h_transaction.commit();
h_session.close();

gdzie: h_factory jest fabryką sesji zbudowaną po skonfigurowaniu połączenia z bazą, h_transaction odpowiada za transakcje z bazą danych a funkcja commit() zapisuje do bazy danych zmiany dokonane w czasie trwania sesji h_session.

 

Czytanie z bazy danych:

Criteria criteria = h_session.createCriteria(ObjectInBase.class);
criteria.add(Restrictions.like("nazwa","Sznurek%"));
criteria.add(Restrictions.ilike("nazwa", "Sznurek%"));
criteria.add(Restrictions.eq("status",2));
criteria.add(Restrictions.ne("status",0));
criteria.add(Restrictions.between("price",100,200));
criteria.addOrder(Order.asc("nick"));
List<User>list_rows = criteria.list();

gdzie: h_session jest wcześniej utworzoną sesją Hibernate, list_rows jest listą wynikową zapytania.

SORTOWANIE:
Order.asc - od największej do najmniejszej,
Order.desc - odwrotność Order.asc.

WARUNKI:
Restriction.ilike - zawierający frazę,
Restriction.eq - równy wartości (obiektowi),
Restriction.ne
- różny od wartości (obiektu),
Restriction.gt - większy (>),
Restriction.ge - większy lub równy (>=),
Restriction.lt - mniejszy (<),
Restriction.le - mniejszy lub równy (<=),
Restriction.between - zawarty pomiędzy.

 NATYWNE QUERY:
String query = "select ID as id, IN_YEAR as year, NEXT_NUMBER_IN_YEAR as nextNumberInYear from BDS_PRODUCTION_CONKRET_ORDER_LINE order by ID limit 10";
Query q = session.createSQLQuery(query)
        .addScalar("id", new LongType())
        .addScalar("year")
        .addScalar("nextNumberInYear")
        .setResultTransformer(Transformers
        .aliasToBean(ConkretOrderLineData1.class));
List<ConkretOrderLineData1> l = q.list();


 

Zmieniony: Sobota, 14 Kwiecień 2012 08:26