`

使用Hibernate的错误解决办法对应(转)

 
阅读更多

转自:http://blog.csdn.net/zdwzzu2006/article/details/7552234

异常1:not-null property references a null or transient value
解决方法:将“一对多”关系中的“一”方,not-null设置为false
(参考资料:http://www.thearcmind.com/confluence/pages/viewpage.action?pageId=212)

异常2:org.hibernate.TransientObjectException: object references an unsaved transient instance
解决方法:cascade="save-update,persist"
(参考资料:http://www.laliluna.de/254.html)

异常3:org.hibernate.QueryException: could not resolve property
解决方法:"from Category category where category.userID = :userID"修改为"from Category category whereuserID = :userID"或者"from Category category where category.user.id = :userID"
(参考资料:http://www.laliluna.de/277.html)

异常4:could not initialize proxy - the owning Session was closed
解决方法:设置lazyfalse
(参考资料:http://forum.springframework.org/showthread.php?t=27993)

 

异常2我在应用中碰到了这样的问题:

有三个表:userInfo   deptmentInfo   role

userInfo 与deptmentInfo为many to one

userInfo 与role为many to one

下面为保存UserInfo对象时的代码:

    DeptmentInfo dept = new DeptmentInfo();
    dept.setDeptName(deptName);

    Role role = new Role();
    role.setRoleName(roleName);

    UserInfo user = new UserInfo();
    user.setUserName(userName);
    user.setUserSex(userSex);
    user.setDuty(duty);
    user.setPhone(phone);
    user.setMobileNum(mobileNum);
    user.setEmail(email);
    user.setQq(qq);
    user.setMsn(msn);
    user.setAdress(adress);
    user.setDeptmentInfo(dept);
    user.setRole(role);

    dao.save(user);

 

执行时有错:org.hibernate.TransientObjectException: object references an unsaved transient instance

 

于是改了UserInfo.hbm.xml的一些地方

如下:

<many-to-one name="role" class="com.oa.domain.Role"
   cascade="save-update,persist" fetch="select">
    <column name="ROLE_ID" precision="22" scale="0" />
   </many-to-one>
   <many-to-one name="deptmentInfo"
    class="com.oa.domain.DeptmentInfo" cascade="save-update,persist"
    fetch="select">
    <column name="DEPT_ID" precision="22" scale="0" />
   </many-to-one>

 

加了上面红色部分的,就OK了,能保存了。

分享到:
评论

相关推荐

    HIbernate免注解实现操作数据库 及Hibernate3连接SQL的BUG解决办法

    本篇将深入探讨如何在Hibernate中实现数据库操作而无需使用注解,以及如何解决在Hibernate 3中遇到的连接SQL的常见问题。 首先,让我们了解在Hibernate中免注解实现数据库操作的基本步骤: 1. **配置Hibernate**: ...

    Java开发常见错误及解决方案文件

    除此之外,文档中还可能提及其他类型的Java错误以及解决办法,比如: - 类型转换异常(java.lang.ClassCastException) - 数组越界异常(java.lang.ArrayIndexOutOfBoundsException) - null指针异常(java.lang....

    错误及解决方案.pdf

    文档内容主要涉及到JavaEE Web应用开发中,特别是在使用Hibernate框架和Spring框架集成时遇到的错误及其解决办法。内容中多次提及了“lazy initialization”异常,这通常发生在尝试访问一个被延迟加载的集合时,但是...

    SpringMVC+Spring+Hibernate(SSH)框架搭建之一

    通过这个项目,你可以实际操作一遍SSH框架的搭建,遇到问题时,可参考提供的错误解决办法文档,以便快速定位并解决问题。 总结来说,SSH框架的搭建涉及SpringMVC的请求处理、Spring的依赖注入和事务管理,以及...

    Hibernate学习笔记

    解决这种不匹配的办法有两种:一是使用JDBC手工转换数据,二是使用对象关系映射(ORM)框架,比如Hibernate、TopLink或OJB。 了解Hibernate的基础后,可以开始构建第一个实例,其中需要导入相关的jar包、实体类和...

    遇到的问题和解决办法1

    以上这些问题和解决办法都是在实际项目开发中常见的问题,通过有效的沟通、规范的代码管理和细致的测试,可以避免或解决这些问题,提高项目的质量和效率。在团队协作中,遇到问题并不可怕,关键是要有解决问题的决心...

    mysql “ Every derived table must have its own alias”出现错误解决办法

    这个查询通过别名关联了四个子查询,分别对应了Java、JDBC和Hibernate的成绩,以及所有课程的总成绩。每个子查询的别名使得外部查询能以`name1`, `Java`, `jdbc`, `hibernate`和`total`来引用它们。 总结来说,理解...

    青鸟一小部分教学.ppt

    10. **常见调试问题与解决办法**:在实际开发中,可能会遇到如SQL执行异常、对象状态错误等问题,需要熟练掌握日志分析、断点调试等技巧来定位和解决问题。 11. **代码规范问题**:强调代码的可读性和可维护性,...

    JPA 开发中遇到的错误

    解决办法是确保所有在HQL查询中使用的实体和属性都已在JPA配置中正确声明。 ### 2. java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.lang.String 当尝试将一个对象数组转换为字符串时...

    struts2+spring+hibernate整合中spring注入出错。页面中报空指针异常。高手来看看怎么决绝。

    对于给出的博客链接,虽然没有具体内容,但通常这类资源会包含作者遇到问题的具体情况和解决办法,可以作为一个参考。 总之,解决此类问题需要对这三个框架有深入的理解,并熟悉它们的集成方式。通过仔细检查配置...

    解决 java.lang.NoSuchMethodError的错误

    解决 java.lang.NoSuchMethodError 的错误 Java.lang.NoSuchMethodError 错误是一种常见的 Java 异常,它发生在 Java 虚拟机 (JVM) 无法找到某个类的特定方法时。这种错误可能是由于项目依赖比较复杂、Java 运行...

    middlegen压缩包

    如果你在使用middlegen时遇到问题,可以尝试以下解决办法: 1. **寻找替代方案**:如前所述,Spring Data JPA和MyBatis是现代Java开发中常用的ORM框架,它们可能更适合当前的开发环境。 2. **查阅社区资源**:尽管...

    xdoclet-1.2.1.zip

    例如,如果你在EJB组件中使用了`@Stateless`或`@Entity`注解,XDoclet会生成对应的EJB或Hibernate映射文件。这极大地简化了开发者的工作,减少了手动编写XML配置文件的负担。 在1.2.1版本中,XDoclet可能已经修复了...

    hibernat调用过程和函数

    本文主要探讨如何在Hibernate中调用存储过程,并通过示例代码来具体分析可能遇到的问题及其解决办法。 #### 二、配置文件解析 在配置文件 `&lt;hibernate-mapping&gt;` 中,定义了一个名为 `SshPost` 的类映射到数据库表...

    计算机毕业实习日记34篇..pdf

    在解决数据库加载失败的问题时,实习生通过多种途径,包括论坛求助和同学指导,最终找到了问题的解决办法,这可能涉及到SQL Server的更新、数据库连接配置的准确性,以及服务器版本的兼容性等问题。 这个实习过程...

    MyEclipse6.5汉化包

    这时,可以尝试以下解决办法: 1. 检查汉化包的版本是否与MyEclipse 6.5匹配,不同版本的MyEclipse可能需要对应的汉化包。 2. 清除MyEclipse的工作空间数据,有时候错误的配置信息会导致问题。 3. 查阅汉化包的说明...

    java面试题广州

    2. **字符编码问题**:页面乱码和数据库乱码问题通常与字符编码设置不一致有关,解决办法是在应用和数据库中统一字符编码,例如使用UTF-8。 3. **SQL查询优化**:当查询包含重复字段时,可以使用GROUP BY语句结合...

Global site tag (gtag.js) - Google Analytics