11 Eylül 2019 Çarşamba

JPA StoredProcedureQuery Arayüzü

constructor metodu
Örnek
Şöyle yaparız
StoredProcedureQuery sp = entityManager.createStoredProcedureQuery(procName);
Örnek
Şöyle yaparız
StoredProcedureQuery sp = session.createStoredProcedureQuery("MyInsert");
execute metodu
Örnek
StoredProcedureQuery  aynı zamanda Query arayüzünü gerçekleştirdiği için şöyle yaparız.
Query q1 = entityManager.createStoredProcedureQuery(...);
q1.execute();
getResultList metodu
Örnek
Sonucu almak için şöyle yaparız.
List<Object[]> storedProcedureResults = sp.getResultList();
Örnek
Elimizde şöyle bir kod olsun
StoredProcedureQuery storedProcedure = em.createStoredProcedureQuery("pkg_p.proc_p");
storedProcedure.getResultList();
Bu kod şu sql gibidir.
select 1 as id_col, 'My Name ' as name , 1000 as sal from dual;
Dolaşmak için şöyle yaparız.
for(Object[] row: resultSet) {
  ...
}
registerStoredProcedureParameter metodu
Örnek - String Input
Şöyle yaparız.
int paramCount = 0;
for (String param : params) {
  paramCount++;
  sp.registerStoredProcedureParameter(paramCount, String.class, ParameterMode.IN);
  sp.setParameter(paramCount, param);
  
}
Örnek - Long Input
Şöyle yaparız.
StoredProcedureQuery query = entityManager.createStoredProcedureQuery("...")
  .registerStoredProcedureParameter("stateId",Long.class,ParameterMode.IN)
  .registerStoredProcedureParameter("dateStart",LocalDateTime.class,ParameterMode.IN)
  .registerStoredProcedureParameter("dateEnd",LocalDateTime.class,ParameterMode.IN);
Örnek - BigDecimal Input
Şöyle yaparız
query.registerStoredProcedureParameter("balance", BigDecimal.class,ParameterMode.IN);
query.registerStoredProcedureParameter("invoice_id", String.class,ParameterMode.IN);
query.setParameter("balance", new BigDecimal(100));
query.setParameter("invoice_id", "asda12-123");

Hiç yorum yok:

Yorum Gönder