JPA调用存储过程中的更改

时间:2018-10-10 09:45:50

标签: jpa hibernate-5.x spring-orm

是否还有其他方法可以减少以下代码段。在使用Hibernate4电流之前,我们先更改为Hibernate5(版本5.3.6.Final),以便在Hibernate5中进行太多更改。我们是此版本的新手,因此任何人都可以与我们共享用于在Hibernate5中调用任何存储过程的任何代码段。我们已经做到了,但是我们需要一些标准的优化代码。

在这里,我们使用以下方法。

 @Override
 public List<LocationCount> getLocationCounts(String userName) {

        StoredProcedureQuery q = getCurrentSession().createStoredProcedureQuery("locationcount");
        q.registerStoredProcedureParameter("userName", String.class, ParameterMode.IN);
        q.setParameter("userName", userName);
        q.execute();

        List<LocationCount> data = new ArrayList<>();
        List<Object[]> results = q.getResultList();

        results.stream().forEach((record) -> {
            LocationCount d = new LocationCount();
            d.setOrgCode((String) record[0]);
            d.setOrgName((String) record[1]);
            d.setLocationCode((String) record[2]);
            d.setLocationName((String) record[3]);
            data.add(d);
        });

        return data;
    }

谢谢

Sitansu

0 个答案:

没有答案