3 Ağustos 2018 Cuma

SQLQuery Arayüzü

Giriş
Native SQL cümlesi çalıştırmamızı sağlar.

addEntity metodu
Şöyle yaparız. Belirtilen nesne tipinden ArrayList döner.
final SQLQuery query = sf.getCurrentSession().createSQLQuery(
  "select\n" +
  "   id, null as store_id, payment_type,\n" +
  "   sum(cost_before_tax) as amount_before_tax, \n" +
  " sum(ticket_count) as count\n" +
  "from settlement_collection_initial_settlement\n" +
  "where\n" +
  "   business_date between :start and :end\n" +
  (storeID != null ? "    and store_id = :store\n" : "") +
  "group by transaction_type, payment_type"
);
query.addEntity(AmountRow.class);
        query.setDate("start", start);
        query.setDate("end", end != null ? end : start);
        if (storeID != null) {
            query.setString("store", new UUIDType().toSQLString(storeID));
        }
        return query.list();
addScalar metodu
Seçilecek sütunları ve döndürülecek tipleri belirtir. Şöyle yaparız.
query.addScalar("ID", StringType.INSTANCE)
list metodu
Şöyle yaparız.
StringBuilder query = new StringBuilder("SELECT x, y, z FROM ...");

SQLQuery query = session.createSQLQuery(query);
List result = query.list();