dao层extends BaseDaoJpa修改数据设为只读不做更新
来源:互联网 发布:怎么使用vim编译c语言 编辑:程序博客网 时间:2024/05/16 10:59
因为要在前台将特定数字改为字符串字段,在前台数据量太大不能在前台将数据进行替换,性能消耗太大,所以只能在后台处理,然而问题在这里:
问题一:将数据进行替换时设置字段值时数据库里面的数据也更新了,而我们的要求是特殊字段显示转换字符串,数据库的数据保持不变,
试过好多种方法找到一条最简单实用 的方法解决这个问题
即: session.setReadOnly(item, true);设为只读就解决了这个问题,只读取不做更新
public PageListHelper searchByArgs(PageListHelper page,Map<String, Object> argMap) {List args = new ArrayList();StringBuffer sb = new StringBuffer();StringBuffer countsb = new StringBuffer();String argSql = toArgSql(argMap);String sql = "select a from Item a where a.deleted = 0 " + argSql;sb.append(sql);countsb.append("select count(a) from Item a where a.deleted = 0 ");countsb.append(argSql);sb.append(" order by publisherTime desc ");Query q = this.entityManager.createQuery(sb.toString());Query countQuery = this.entityManager.createQuery(countsb.toString());for (int i = 0; i < args.size(); i++) {q.setParameter(i + 1, args.get(i));countQuery.setParameter(i + 1, args.get(i));}Long count = (Long) countQuery.getSingleResult();q.setFirstResult(page.getStartPosition());q.setMaxResults(page.getObjectsPerPage());page.setFullListSize(Integer.parseInt(count.toString()));List<Item> itemList = q.getResultList();try {Session session = (Session) this.entityManager.getDelegate();for (int i = 0; i < itemList.size(); i++) {Item item = itemList.get(i);// 设置上牌地if (StringUtils.isNotBlank(item.getCarLicenseLocate())) {String provinceSql = "select name from province where code="+ item.getCarLicenseLocate().split("-")[0];org.hibernate.Query provinceQuery = session.createSQLQuery(provinceSql);String proviceName = provinceQuery.uniqueResult().toString();String zxSql = "select zx_flag from province where code="+ item.getCarLicenseLocate().split("-")[0];org.hibernate.Query zxQuery = session.createSQLQuery(zxSql);String zx = zxQuery.uniqueResult().toString();if ("1".equals(zx)) {//item.setCarLicenseLocate(proviceName);item.setCarLicenseLocateFormat(proviceName);} else {// 得到cityString citySql = "select name from city where code="+ item.getCarLicenseLocate().split("-")[1];org.hibernate.Query cityQuery = session.createSQLQuery(citySql);String cityName = cityQuery.uniqueResult().toString();item.setCarLicenseLocateFormat(proviceName + cityName);}/* * // 得到province String provinceSql = * "select name from province where code=" + * item.getCarLicenseLocate().split("-")[0]; * org.hibernate.Query provinceQuery = session * .createSQLQuery(provinceSql); String proviceName = * provinceQuery.uniqueResult() .toString(); // 得到city * String citySql = "select name from city where code=" + * item.getCarLicenseLocate().split("-")[1]; * org.hibernate.Query cityQuery = session * .createSQLQuery(citySql); String cityName = * cityQuery.uniqueResult().toString(); * item.setCarLicenseLocate(proviceName + " " + cityName); */}// 设置颜色if (StringUtils.isNotBlank(String.valueOf(item.getCarColor()))) {// detail_dic_nameString colorNameSql = "select t.detail_dic_name from (select * from sys_dic_item "+ "where dic_parent_code = 'color')as t where t.detail_dic_code='"+ item.getCarColor() + "'";org.hibernate.Query colorQuery = session.createSQLQuery(colorNameSql);String colorName = colorQuery.uniqueResult().toString();item.setCarColor(colorName);}session.setReadOnly(item, true);}page.setList(itemList);} catch (Exception e) {e.printStackTrace();log.error(e);}return page;}
0 0
- dao层extends BaseDaoJpa修改数据设为只读不做更新
- jsp 文本设为只读
- 修改VSAM为只读
- 注册表学习——强制将USB设为只读,机密数据带不走
- 修改表为只读状态
- c#判断文件是否为只读,并修改为只读
- 如何将c#中的Combobox下拉列表设为只读
- asp.net 文本框设为只读删除键返回上页
- 如何将jsp中<input>设为只读
- MVC中HTML控件设为只读readonly
- 去掉input边框 设为只读
- Jquery显示和隐藏元素或设为只读(…
- 解决数据不能更新,数据库或对象为只读的问题[图]
- 不能更新,数据库或对象为只读
- mysql 在dao层修改状态
- sqlsever数据库为只读的修改办法
- sqlsever数据库为只读的修改办法
- tsm 只读模式修改为读写
- Qt中开机启动画面
- python set
- iOS 进度条 UIProgressView
- 表格(TableViewer类)
- 移植tslib库出现ts_open: No such file or directory
- dao层extends BaseDaoJpa修改数据设为只读不做更新
- 【reversing.kr】Replace逆向分析
- 关于setImageState(int[] state, boolean merge)的解释以及使用方式
- BZOJ 4320 ShangHai2006 Homework 并查集
- 大数据数据仓库-场景
- modelsim的do文件
- Web前端开发学习2:动态网页
- LDAP 中 CN, OU, DC 的含义
- nios的头文件