hibernate框架常见异常集锦

一.entity找不到问题一般出现在hibernate.cfg.xml文件中


Exception in thread "main" org.hibernate. MappingException: Unknown entity: com.lrq.entity.Developer
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1096)
at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1479)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:117)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:209)
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:194)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:49)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:715)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:707)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:702)
at com.lrq.test.TestDevAndPro.main(TestDevAndPro.java:42)


解决方案:在hibernate.cfg.xml配置相关mapper映射


<!--指明表和实体类的映射-->
    <mapping resource="com/lrq/entity/Developer.hbm.xml"/>
    <mapping class="com.lrq.entity.Developer"/>


    <mapping resource="com/lrq/entity/Project.hbm.xml"/>

    <mapping class="com.lrq.entity.Project"/>



二.主键自增没设置
Exception in thread "main" org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.lrq.entity.Project


解决方案:在Project.hbm.xml里面配置
<class name="com.lrq.entity.Project" table="project" schema="test">
        <id name="proId">
            <column name="pro_id" sql-type="int(11)"/>
            <generator class="identity"/>
        </id>


三.Transation通过get方式得到而不是begin,会显示没有开启事务
       Exception in thread "main" org.hibernate.TransactionException: Transaction not successfully started

    解决方案:
   Transaction tx=session.beginTransaction();


四.没有注册用户名和密码错误
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.lrq.test.TestOneToOne.main(TestOneToOne.java:15)
Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1930)
at com.lrq.util.SessionFactoryUtil.<clinit>(SessionFactoryUtil.java:15)
... 1 more
Caused by: java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)


解决方案:
<property name="connection.username">root</property>
<property name="connection.password">12345</property>


五.Xml设置关联关系错误
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.lrq.test.TestOneToOne.main(TestOneToOne.java:15)
Caused by: org.hibernate.MappingException: property-ref [user] not found on entity [com.lrq.entity.Weapon]
at org.hibernate.mapping.PersistentClass.getReferencedProperty(PersistentClass.java:385)
at org.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java:1724)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1426)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1846)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1930)
at com.lrq.util.SessionFactoryUtil.<clinit>(SessionFactoryUtil.java:15)
... 1 more
Caused by: org.hibernate.MappingException: property [user] not found on entity [com.lrq.entity.Weapon]
at org.hibernate.mapping.PersistentClass.getRecursiveProperty(PersistentClass.java:442)
at org.hibernate.mapping.PersistentClass.getReferencedProperty(PersistentClass.java:382)
... 6 more


解决方案:
<one-to-one name="weapon" class="com.lrq.entity.Weapon" property-ref="hero"/>


六.属性Id没有默认值,一般是表里面没设置自增
Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not execute statement
aorg.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
Caused by: java.sql.SQLException: Field 'weaponId' doesn't have a default value











  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HaleyLiu123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值