首页 > 代码库 > JPA开发总结<七>--Bug总结
JPA开发总结<七>--Bug总结
常见异常
1、异常信息:javax.persistence.PersistenceException: [PersistenceUnit: JPA] Unable to configure EntityManagerFactory
异常原因:很多、实体管理器Factory没有成功创建,是注解的问题
2、java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.lang.String
异常环境:查询、遍历显示
异常原因:转型出错
3、javax.persistence.NonUniqueResultException: result returns more than one elements
异常环境:查询、getSingleResult
异常原因:getSingleResult只能获取一条数据,而查询语句返回的是多条数据
4、 org.hibernate.PropertyValueException: not-null property references a null or transient value: com.sunyard.entities.Person.name
异常环境:数据插入
异常原因:JPA的Entity中一个属性定义为nullable=false,插入数据该字段为null
5、 执行添加没反应、没异常
异常原因:没有开启事务、没有提交事务
6、javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.sunyard.entities.Person
异常环境:OneToOne 共享主键关联
异常原因:一对一中,一个提供主键、另一个共享其主键,共享主键的对象可以set 提供主键的对象 然后添加到数据库中
方向弄反了 后果就是没人提供主键
7、org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing:
异常环境:多对一添加
异常原因:在多的一端维护 ,没有添加级联
8、org.hibernate.hql.ast.QuerySyntaxException: person is not mapped
异常环境:查询
异常环境:添加表做多对一关联映射
异常原因:表字段写反了,name添加表字段名referencedColumnName指向本表字段名
1、异常信息:javax.persistence.PersistenceException: [PersistenceUnit: JPA] Unable to configure EntityManagerFactory
异常原因:很多、实体管理器Factory没有成功创建,是注解的问题
2、java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.lang.String
异常环境:查询、遍历显示
异常原因:转型出错
3、javax.persistence.NonUniqueResultException: result returns more than one elements
异常环境:查询、getSingleResult
异常原因:getSingleResult只能获取一条数据,而查询语句返回的是多条数据
4、 org.hibernate.PropertyValueException: not-null property references a null or transient value: com.sunyard.entities.Person.name
异常环境:数据插入
异常原因:JPA的Entity中一个属性定义为nullable=false,插入数据该字段为null
5、 执行添加没反应、没异常
异常原因:没有开启事务、没有提交事务
6、javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.sunyard.entities.Person
异常环境:OneToOne 共享主键关联
异常原因:一对一中,一个提供主键、另一个共享其主键,共享主键的对象可以set 提供主键的对象 然后添加到数据库中
方向弄反了 后果就是没人提供主键
7、org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing:
异常环境:多对一添加
异常原因:在多的一端维护 ,没有添加级联
8、org.hibernate.hql.ast.QuerySyntaxException: person is not mapped
异常环境:查询
异常原因:查询语句中Person类没有大写
异常环境:添加表做多对一关联映射
异常原因:表字段写反了,name添加表字段名referencedColumnName指向本表字段名
JPA开发总结<七>--Bug总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。