从应用程序

时间:2015-08-17 12:56:39

标签: oracle hibernate spring-mvc jboss transactions

我正在获取oracle表行锁,同时在生产服务器中使用DAOImpl中编写的下述方法。它在测试服务器上运行良好。

`public boolean inactiveServices(String custUid) {
    Session session = null;
    try {
        session = sessionFactory.openSession();
        Long count = (Long) (session.createQuery(
                "select count(*) as intcustomeridpk from CustomerRegistrationPOJO t where t.customerRegistrationPK.custUid = '"
                        + custUid + "'").iterate().next());
        if (count < 1)
            return false;
        String queryToFetchUserIdPk = "select t.customerRegistrationPK.intCustomerId as intcustomeridpk from CustomerRegistrationPOJO t where t.customerRegistrationPK.custUid = '"
                + custUid + "'";
        //Iterator iterator = session.createQuery(queryToFetchUserIdPk).iterate();
        String currentCustIntIdPk = (String) session.createQuery(queryToFetchUserIdPk).iterate().next();
        System.out.println("currentCustIntIdPk  "+currentCustIntIdPk);
        Criteria criteria = session.createCriteria(CustUtilsPOJO.class).add(
                Restrictions.eq("custUtlilityKey.custUid", currentCustIntIdPk))
                .add(Restrictions.eq("ynActive", "Y"))
                .add(Restrictions.ne("dmlFlag", 2));
        List<CustUtilsPOJO> foundUtilList = criteria.list();
        for (CustUtilsPOJO eachUtil : foundUtilList) {
            System.out.println("centerCode=="+eachUtil.getCenterCode()+"serviceId=="+eachUtil.getCustUtlilityKey().getUtilNumber()+"utilityId=="+eachUtil.getCustUtlilityKey().getUtilId()+"intCustUtil=="+eachUtil.getIntCustomerUtlServiceId());
            eachUtil.setDmlFlag(2);
            eachUtil.setYnActive("N");
            session.merge(eachUtil);
        }
        Transaction txn = session.beginTransaction();
        txn.commit();
    } catch (Exception ex) {
        ex.printStackTrace();
    } finally {
        if (session != null && session.isOpen()) {
            session.flush();
            session.clear();
            session.close();
        }
    }
    return true;
}`

0 个答案:

没有答案