文档章节

hibernate+json报no session

z596593851
 z596593851
发布于 2016/03/11 15:54
字数 188
阅读 4
收藏 0

含有外键的po,采用lazy加载模式时,session会在进入service(action)前关闭。

方案1:

可在web.xml中配置:

<!-- 延迟加载 -->

<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>

<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

注意要配置在struts的过滤器前。

方案2:

public <T> void write(List<T> list,String... values){

String [] ignore=null;

HttpServletResponse response = ServletActionContext.getResponse();

response.setContentType("text/html;charset=UTF-8");

response.setCharacterEncoding("UTF-8");// 防止弹出的信息出现乱码

PrintWriter writer=null;

try {

writer = response.getWriter();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

JsonConfig jsonConfig = new JsonConfig();

jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);

if (values != null) {

ignore =new String[values.length];

for (int i = 0; i < values.length; i++) {

ignore[i]=values[i];

}

}

jsonConfig.setExcludes(ignore);

JSONArray json =JSONArray.fromObject(list, jsonConfig);

//防止因嵌套产生的死循环


System.out.println(json);

writer.print(json);

}

jsonConfig.setExcludes(ignore);为给json添加过滤字段。


© 著作权归作者所有

z596593851
粉丝 1
博文 50
码字总数 17757
作品 0
日照
私信 提问
Hibernate学习之SessionFactory

由于SessionFactory是一个重量级的类,在一个应用中我们需要做成单例的,我选择的做法是: ` openSession()是打开一个Session,因此每次得到的Session都不一样 getCurrentSession()是得到当前...

落雪有声踏地无痕
2013/10/31
0
0
Hibernate常出现的报错

刚开始学习hibernate的时候,第一次就遇到了空指针异常,结果是我的配置文件处理错误(主要是数据库表的字段与就java实体类的属性名单词写错了);一般是报空指针异常的话,多半是配置文件的...

陈嘻嘻哈哈
2015/12/19
0
0
jfinal 的getInt("字段名")错误

我在session里藏了一个user user里有一个int型的字段 我先从session里获取到这个user 再user.getInt("字段名")报runtimeexception错误 改成user.getLong("字段名")也是报这个错 改成user,ge......

我自横刀微笑
2015/11/02
281
10
如何为redis读取的缓存开启hibernate事务读取懒加载对象

最近在用redis缓存dao层的方法,缓存是成功了,但是在读取懒加载的数据的时候报could not initialize proxy - no Session。 这是dao层 第二次访问命中的时候,读取懒加载就报了no session。...

Joemsu
2017/01/17
1K
0
session.close()和releaseSession(session)

session.close(),releaseSession(session)都是关闭session,但releaseSession会判断你是否配置了事务处理,如果有,则不做任何处理.举例来说,假如你service层配置了事务,当你在dao层执行了sessi...

刘显示
2015/09/17
25
0

没有更多内容

加载失败,请刷新页面

加载更多

Java中print、printf、println的区别

printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和print基本没什么差别,就是最后会换行

hellation_
13分钟前
0
0
spring在静态类中注入bean的的解释

@Componentpublic class ModelMapper {@AutoWiredprivate static AssignmentManager assignmentManager;public static void add(){a+b;}} 静态方法是属于类的,普通方法才属于...

无知的小狼
14分钟前
0
0
分而治之-归并排序

如果有1个数组,数组的左半部分和右半部分都已经排好序,如何将该数组合成1个有序的数组? 开辟1个同样大小的临时空间辅助我们完成归并过程,如下图 k:表示归并过程中,当前需要替换的原数组...

万山红遍
28分钟前
0
0
Linux修改时区的正确方法【修改时间,需要修改软连接,靠谱】

CentOS和Ubuntu的时区文件是/etc/localtime,但是在CentOS7以后localtime以及变成了一个链接文件 [root@centos7 ~]# ll /etc/localtime lrwxrwxrwx 1 root root 33 Oct 12 11:01 /etc/loca......

Airship
今天
1
0
《Netkiller Spring Cloud 手札》之 Master / Slave 主从数据库数据源配置

5.19.1. Master / Slave 主从数据库数据源配置 5.19.1.1. application.properties spring.datasource.master.driverClassName = com.mysql.cj.jdbc.Driverspring.datasource.master.url=j......

netkiller-
今天
50
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部