SSH-CRUD-查询
来源:互联网 发布:青云云计算 编辑:程序博客网 时间:2024/04/30 18:26
1). 获取所有的员工信息: 若在 Dao 中只查询 Employee 的信息, 而且 Employee 和 Department 还是使用的懒加载. 页面上还需要显示员工信息, 此时会出现懒加载异常, 代理对象不能被初始化: 2.org.hibernate.LazyInitializationException: could not initialize proxy - no Session
解决:
①. 打开懒加载: 不推荐使用
②. 获取 Employee 时使用 迫切左外连接同时初始化其关联的 Department 对象.
③. 使用 OpenSessionInViewFilter: 后面再提.
BaseDao.java:
public class BaseDao { private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public Session getSession(){ return this.sessionFactory.getCurrentSession(); }}
EmployeeDao.java:
public class EmployeeDao extends BaseDao{ public List<Employee> getAll(){ String hql = "FROM Employee e LEFT OUTER JOIN FETCH e.department"; return getSession().createQuery(hql).list(); }}
EmployeeService.java:
public class EmployeeService { private EmployeeDao employeeDao; public void setEmployeeDao(EmployeeDao employeeDao) { this.employeeDao = employeeDao; } public List<Employee> getAll(){ List<Employee> employees = employeeDao.getAll();// employees.clear(); return employees; }}
EmployeeAction.java:
public class EmployeeAction extends ActionSupport implements RequestAware, ModelDriven<Employee>, Preparable{ private Employee model; @Override public Employee getModel() { return model; } private Map<String, Object> request; @Override public void setRequest(Map<String, Object> arg0) { this.request = arg0; } private static final long serialVersionUID = 1L; private EmployeeService employeeService; public void setEmployeeService(EmployeeService employeeService) { this.employeeService = employeeService; } public String list() { request.put("employees", employeeService.getAll()); return "list"; } @Override public void prepare() throws Exception {}}
配置applicationContext-beans.xml:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="employeeDao" class="com.zhou.dao.EmployeeDao"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="employeeService" class="com.zhou.service.EmployeeService"> <property name="employeeDao" ref="employeeDao"></property> </bean> <bean id="employeeAction" class="com.zhou.actions.EmployeeAction" scope="prototype"> <property name="employeeService" ref="employeeService"></property> </bean></beans>
struts.xml:
<package name="default" namespace="/" extends="struts-default"> <action name="emp-*" class="employeeAction" method="{1}"> <result name="list">/WEB-INF/views/emp-list.jsp</result> </action></package>
emp-list.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script></head><body> <h4>Employee List Page</h4> <s:if test="#request.employees == null || #request.employees.size() == 0"> 没有任何员工信息 </s:if> <s:else> <table border="1" cellpadding="10" cellspacing="0"> <tr> <td>ID</td> <td>LASTNAME</td> <td>EMAIL</td> <td>BIRTH</td> <td>CREATETIME</td> <td>DEPT</td> <td>DELETE</td> <td>EDIT</td> </tr> <s:iterator value="#request.employees"> <tr> <td>${id }</td> <td>${lastName }</td> <td>${email }</td> <td> <s:date name="birth" format="yyyy-MM-dd"/> </td> <td> <s:date name="birth" format="yyyy-MM-dd hh:mm:ss"/> </td> <td>${department.departmentName }</td> <td> <a href="emp-delete?id=${id }" class="delete">Delete</a> <input type="hidden" value="${lastName }"/> </td> <td> <a href="emp-input?id=${id }">Edit</a> </td> </tr> </s:iterator> </table> </s:else></body></html>
阅读全文
1 0
- SSH-CRUD-查询
- SSH-CRUD-简介
- SSH-CRUD-删除
- MongoDB 操作手册CRUD查询
- CRUD-查询-分页
- SSSP-CRUD-查询-分页
- ssh+Ext开发CRUD功能
- SSH-CRUD-添加和修改
- MongoDB 操作手册CRUD查询指针
- android sqlite CRUD 查询 事务
- 商品的CRUD,分页查询
- SSH:查询
- ssh+Ext开发CRUD功能(1)
- ssh+Ext开发CRUD功能(1)
- SSH框架整合实现CRUD简介
- SSH项目实战二:SSH+EASYUI完美实现CRUD
- Kohana数据操作CRUD之查询
- MongoDB 操作手册CRUD 查询性能分析
- 最全的freemarker教程
- 6.9求e的值
- 在Linux上安装JDK、Tomcat、MySQL软件
- C++面试出现频率最高的面试题
- 跨域的几种解决方案
- SSH-CRUD-查询
- Mysql进程未完全关闭,导致重启失败
- 第一次面试有感
- 设置http-equiv中的refresh属性,来设定网页刷新间隔
- 招聘会小试牛刀
- 数据结构与算法
- for中的i++与++i的差别
- 解决本地tomcat部署项目乱码问题
- Euclid(欧几里得)算法