平时开发当中遇见的异常总结(持续记录)-创新互联

10年积累的网站设计、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站策划后付款的网站建设流程,更有依安免费网站建设让你可以放心的选择与我们合作。>异常名称:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException 异常原因:
1. JSONArray.fromObject(obj).toString()。可能是obj对象中存在Date时间类型,JSON对象把date认为是java.sql.Date。 2. 在封装对象时有可能hibernate级联到了别的对象,使用到了延迟加载而导致了这个问题。(以上问题均来源网络) 解决:我的问题后来调整了实现,并未解决上述问题。贴出,网络的解决办法: 日期格式:private java.util.Date createTime; hibernate延时加载 设置:   JsonConfig cfg= new JsonConfig();   cfg.setExcludes(new String[] {"handler","hibernateLazyInitializer"});

异常名称:org.springframework.dao.InvalidDataAccessApiUsageException: object references an unsaved transient instance - save the transient instance before flushing: com.tlj.pcxt.entity.admin.Unit
异常原因:
对象引用一个瞬时状态实例
解决:引发此异常的情况有多重(以下第一点解决办法则是我的问题,其余均来源网络)
1. this.getUserService().updateUser(user);(发生异常的地方)
  此代码尝试更新一个前台传入的User对象,其中User对象有一个属性Unit(单位,为对象).
  由于前台对象封装的时候出现问题,Unit对象获取为空。故更新的时候报错。
  本来以为这种错误会抛出空异常,但是并未。所以让我纠结半天,原来是页面写错。
2. hibernate事物配置问题。(由于我并未遇见这个问题,则没机会去解决。网上的方法无法验证正确性,这里就不贴出来了)
异常名称:org.hibernate.HibernateException: cannot simultaneously fetch multiple bags
异常原因:
1. 由于持久层实时加载太多异同对象而致。
   当持久框架抓取一方的对象时,同时加载多方的对象放进容器中,多方又可能与关联其它对象,Hibernate实现的JPA,默认高抓取深度含本身级为四级(它有个属性配置是0-3),若多方(第二级)存在重复值,则第三级中抓取的值就无法映射,按照这个道理,就应该报出无法同时加载多个包之异常。
解决:
1. 先看看自己是不是用了List集合而导致此问题的发生,若是用Set还出现此问题,则去看Set容器内的对象的类中是不是还有类似问题。@ManyToMany或@OneToMany的Many方此时一定用Set容器来存放,而不能用List集合。

网站栏目:平时开发当中遇见的异常总结(持续记录)-创新互联
分享URL:https://www.cdcxhl.com/article24/ecjje.html

成都网站建设公司_创新互联,为您提供手机网站建设服务器托管网页设计公司标签优化网站制作网站改版

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

微信小程序开发