仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 621|回复: 10
打印 上一主题 下一主题

[学习教程] 发布一篇利用静态代办署理办理Hibernate序列化,制止提早加载成绩

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:06:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)
在利用Ajax:HibernateEntity=>json,FlexRemoteObject:HibernateEntity=>ActionScriptObject的历程,常常碰着以下成绩:
成绩:
1.Hibernate碰着提早加载的属性会见时假如session被封闭则抛出LazyInitializationException
2.Hibernate中的one-to-many等联系关系干系在序列化时假如没有把持,则将全部数据库都有大概被全体序列化
3.过量的利用DTO/ValueObject办理这个成绩.
办理举措:
对Entity对象天生一个静态代办署理,拦阻getXXXX()办法,假如会见的是提早加载的属性,则returnnull,而不抛出LazyInitializationException,递回天生属性的代办署理,只需碰着未提早加载的属性,而序列化会主动中断.制止将全部Entity序列化传布,招致大概序列化全部数据库的成绩.
相似办理计划:
dwr中HibernateConverter,在序列化时如上相似,碰着提早加载的属性主动停止convert事情.而HibernateBeanSerializer则与日俱增,不管object=>json都能够事情.
利用用例:
Java代码
//role为原始对象
role=(Role)roleDao.getById(new Long(1));
//天生的静态代办署理proxyRole,会见提早加载的属性将returnnull
RoleproxyRole=(Role)new HibernateBeanSerializer<Role>(role).getProxy();
assertNotNull(role.getResource());
assertNull(proxyRole.getResource()); //提早加载,为null
Hibernate.initialize(role.getResource()); //抓取出去  
assertNotNull(proxyRole.getResource()); //不为null
//role为原始对象
role=(Role)roleDao.getById(newLong(1));
//天生的静态代办署理proxyRole,会见提早加载的属性将returnnull
RoleproxyRole=(Role)newHibernateBeanSerializer<Role>(role).getProxy();
assertNotNull(role.getResource());
assertNull(proxyRole.getResource());//提早加载,为null
Hibernate.initialize(role.getResource());//抓取出去
assertNotNull(proxyRole.getResource());//不为null
<p>
net程序员的大部门代码都靠控件拖拽完成的,虽然java也有,但是无论从美观和速度上都没发和.net比。java程序员都是代码完成的,所以java程序员常戏称.net程序员是操作员,呵呵。
变相怪杰 该用户已被删除
沙发
发表于 2015-1-20 14:24:20 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
透明 该用户已被删除
板凳
发表于 2015-1-21 15:15:19 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
海妖 该用户已被删除
地板
发表于 2015-1-24 11:30:52 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
若相依 该用户已被删除
5#
发表于 2015-1-26 10:22:35 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
只想知道 该用户已被删除
6#
发表于 2015-2-4 13:48:43 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
活着的死人 该用户已被删除
7#
发表于 2015-2-10 00:58:47 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
飘灵儿 该用户已被删除
8#
发表于 2015-2-28 10:20:42 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
爱飞 该用户已被删除
9#
发表于 2015-3-9 22:16:28 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
莫相离 该用户已被删除
10#
发表于 2015-3-17 02:10:37 | 只看该作者
是一种使用者不需花费很多时间学习的语言
深爱那片海 该用户已被删除
11#
发表于 2015-3-23 15:40:39 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 21:12

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表