使用hibernate中的update子句更新数据库表失败

时间:2016-03-02 09:41:53

标签: java mysql hibernate

我正在尝试更新名为customer的表中的一批列。当我在硬编码数据时更新两列时,它可以工作。我的目标是从另一个表中获取数据将更新另一个。请到这里它没有抛出任何异常,只是代码没有运行。提前致谢

            Session session = HibernateUtil.getSessionFactory().openSession();
            customerdata.stream().forEach((row) -> {
                session.beginTransaction();
// record data loggingg of customer import data transaction
            String sql = "UPDATE Customer SET first_name = :first_name ,second_name = :second_name,"
                    + "other_names = :other_name,gender = :gender,"
                    + "date_opened = :date_opened,date_approved = :date_approved,branch_code = :branch_code,"
                    + "national_id_number = :national_id_number,crb_number = :crb_number,"
                    + "passport_number = :passport_number,passport_expiry_date = :passport_expiry_date,"
                    + "voters_number = :voters_number,student_id_number = :student_id_number,"
                    + "employer_id_number = :employer_id_number,finance_card_number = :finance_card_number,"
                    + "driving_permit_number = :driving_permit_number,nssf_number = :nssf_number,tin_number = :tin_number,"
                    + "police_id_number = :police_id_number,updf_number = :updf_number,"
                    + "mobile = :mobile,telephone1 = :telephone1,telephone2 = :telephone2,"
                    + "email = :email ,is_salaried = :is_salaried,plot_number = :plot_number,postal_address = :postal_address,"
                    + "street = :street,account_operating_mode = :account_operating_mode,"
                    + "primary_account_type = :primary_account_type,"
                    + "address_type = :address_type,address_description = :address_description,dob_given = :dob_given,"
                    + "date_of_birth = :date_of_birth, client_type = :client_type, country_of_origin = :country_of_origin,"
                    + "city_of_origin = :city_of_origin,city_description = :city_description, employment_type = :employment_type,"
                    + "introducer_details_available = :introducer_details_available,literacy_level = :literacy_level,"
                    + "literacy_description = :literacy_description,marital_status = :marital_status,"
                    + "marital_status_description = :marital_status_description,"
                    + "nationality = :nationality,number_of_dependants = :number_of_dependants,residence = :residence,"
                    + "residence_type = :residence_type ,resident_state = :resident_state,type_of_id = :type_of_id,"
                    + "client_status = :client_status ,date_closed = :date_closed WHERE rim = :rim";

            Query query = session.createQuery(sql);
                query.setParameter("fname", row[2].toString());
                query.setParameter("second_name", row[3].toString());
                query.setParameter("other_name", row[4].toString());
                query.setParameter("gender", row[5].toString());
                query.setParameter("date_opened", (Date) row[6]);
                query.setParameter("date_approved", (Date) row[7]);
                query.setParameter("branch_code", row[8].toString());
                query.setParameter("national_id_number", Integer.parseInt(row[9].toString()));
                query.setParameter("crb_number", row[10].toString());
                query.setParameter("passport_number", row[11].toString());
                query.setParameter("passport_expiry_date", (Date) row[12]);
                query.setParameter("voters_number", row[13].toString());
                query.setParameter("student_id_number", row[14].toString());
                query.setParameter("employer_id_number", row[15].toString());
                query.setParameter("finance_card_number", row[16].toString());
                query.setParameter("driving_permit_number", row[17].toString());
                query.setParameter("nssf_number", row[18].toString());
                query.setParameter("tin_number", row[19].toString());
                query.setParameter("police_id_number", row[20].toString());
                query.setParameter("updf_number", row[21].toString());
                query.setParameter("mobile", row[22].toString());
                query.setParameter("telephone1", row[23].toString());
                query.setParameter("telephone2", row[24].toString());
                query.setParameter("email", row[25].toString());
                query.setParameter("is_salaried", (Boolean) row[26]);
                query.setParameter("plot_number", row[27].toString());
                query.setParameter("postal_address", Integer.parseInt(row[28].toString()));
                query.setParameter("street", row[29].toString());
                query.setParameter("account_operating_mode", Integer.parseInt(row[30].toString()));
                query.setParameter("primary_account_type", Integer.parseInt(row[31].toString()));
                query.setParameter("address_type", row[32].toString());
                query.setParameter("address_description", row[33].toString());
                query.setParameter("dob_given", (Boolean) row[34]);
                query.setParameter("date_of_birth", (Date) row[35]);
                query.setParameter("client_type", row[36].toString());
                query.setParameter("country_of_origin", row[37].toString());
                query.setParameter("city_of_origin", row[38].toString());
                query.setParameter("city_description", row[39].toString());
                query.setParameter("employment_type", row[40].toString());
                query.setParameter("introducer_details_available", row[41].toString());
                query.setParameter("literacy_level", row[42].toString());
                query.setParameter("literacy_description", row[43].toString());
                query.setParameter("marital_status", row[44].toString());
                query.setParameter("marital_status_description", row[45].toString());
                query.setParameter("nationality", row[46].toString());
                query.setParameter("number_of_dependants", Integer.parseInt(row[47].toString()));
                query.setParameter("residence", row[48].toString());
                query.setParameter("residence_type", row[49].toString());
                query.setParameter("resident_state", row[50].toString());
                query.setParameter("type_of_id", Integer.parseInt(row[51].toString()));
                query.setParameter("client_status", row[52].toString());
                query.setParameter("date_closed", (Date) row[53]);
                //setting rim data 
                query.setParameter("rim",row[1].toString());

                query.executeUpdate();
                session.getTransaction().commit();
                System.err.println(xx++ + "RIM LOOPED:" + row[1].toString());
            });
            try {
                session.close();
                System.out.println("Update customer ends. . . . . . . . . . .");

            } catch (NullPointerException nullPointer) {
                System.out.println("updateing data log data property ::<updateEntireContent()>: Customer session object is closed.Exception handled. . .>>" + nullPointer);
            }

0 个答案:

没有答案