sssp整合&分页之完成添加操作之显示页面&使用JPA二级缓存

来源:互联网 发布:珠宝设计绘图软件 编辑:程序博客网 时间:2024/05/29 17:30

本人是职场新手,想要通过写博客的形式为自己的学习做个记录,若有错误,请指正,谢谢!


添加操作:显示页面 & 使用 JPA 二级缓存

•      确定开发目标:

•      Dao 层:

–     查询所有的 Department

–     且需要使用 JPA 的二级缓存 ?

•      Service 层:调用 Dao 层的方法,获取所有的 Department,返回即可

•      Controller 层:

–     调用 Service 层,获取所有的 Department,并放入到 request 中

–     创建一个新的 Employee 对象,放入到 request 中。且其键和表单的 modelAttribute 属性值一致。

–     转发页面

•      JSP 页面:

–     需要使用 SpringMVC 的表单标签来显示表单页面

–     注意:form:form 标签必须设置一个 modelAttribute 属性,以从 request 中获取对应的 bean,要求该 bean 的属性和表单字段是一一对应的。


实现二级缓存:自己实现一个方法,调用@QueryHints({@QueryHint(name=org.hibernate.ejb.QueryHints.HINT_CACHEABLE,value="true")})即可实现


具体代码

public interface DepartmentRepository extends JpaRepository<Department, Integer>{@QueryHints({@QueryHint(name=org.hibernate.ejb.QueryHints.HINT_CACHEABLE,value="true")})@Query("FROM Department d")List<Department> getAll();}

@Testpublic void testRepositorySecondLevelCache(){List<Department> departments = departmentRepository.getAll();departments = departmentRepository.getAll();}


查看运行结果:

Hibernate:     select        department0_.id as id1_0_,        department0_.department_name as departme2_0_     from        sssp_departments department0_

若不实现二级缓存,则会出现两条SQL语句