`
lancijk
  • 浏览: 384426 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 常见错误总结

阅读更多

 

  篇前言

    很久就想写这样一篇在日常开发中见到的错误解决总结了,一直以时间为借口而疏于整理,现在终于下定决心了.哪就要一直写下去,好好学习.

 

 

  问题总结:

 

1:

为了实现透明化的延迟加载机制,hibernate进行了大量努力。其中包括JDK Collection接口的独立实现。

如果我们尝试用HashSet强行转化Hibernate返回的Set 型对象:

Set hset = (HashSet)user.getAddresses();

就会在运行期得到一个java.lang.ClassCastException, 实际上,此时返回的是一个Hibernate的特定Set实现“net.sf.hibernate.collection.Set”对象,而非
传统意义上的JDK Set实现。这也正是我们为什么在编写POJO时,必须用JDKCollection 接口(如Set,Map), 而非特定的JDKCollection 实现类(如HashSet、HashMap)申明Collection属性的原因。

 

 解决方法:

net.sf.hibernate.collection.Set hs=(net.sf.hibernate.collection.Set) servicebase.getXzfwServiceMaterials();

  接着该怎么操作这个  hs.就和JDK的差不多的方法了.

 

2:

ckeckbox js 全选功能name命名问题:

jsp中,当做checkbox全选功能时,其name不能命名为“XXXVO.name”,因为在js中用document.getElementsById(XXX)时,只能选中一个,而不能像name那样可以全部选中。

 

3:

关于hibernate延迟加载的异常 no session or session is closed

但是如果我们采用了延迟加载机制,希望在一些情况下,实现非延迟加载时的功能,在提供一个完整的Bspinq对象时,把所关联的bspInqParts 信息在session关闭之后仍然可以使用。这就要采用hibernate.initialize方法,可以通过强制加载关联对象来实现这一功能。

Hibernate.initialize(inq.getBspInqParts());

Session.close(); 搞定。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics