hibernate 在保存实体的时候 如果操作不当会报如下错误 :
org.hibernate.MappingException: Unknown entity: cn.sys.bean.SysUser at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:701) at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1475)
相应的配置文件
<class name="cn.sys.bean.SysUser" entity-name="SysUser" table="sys_user">
相应的 java操作
SysUser sysUser = new SysUser(); sysUser.setUsername(RandomUtil.generateString(6, 20)); sysUser.setPassword(RandomUtil.generateString(6, 20)); sysUserService.add(sysUser); //即是 session.save(sysUser);
当在 hbm.xml 文件中配置了 entity-name 属性的时候, hibernate 的 save 操作 就应该使用
session.save(entityName, entity)
而不应该是 session.save(entity);
======================================================================
昨晚同样遇到了一个 变态的问题, 导致了调试了好久
Oracle : 通过sql plus 插入一条数据
然后再 该cmd 窗口中 select * from tab_name;
能查到数据,
通过hibernate生成的sql语句 再该CMD窗口中执行依然能查到,纳闷了
刚开始还以为数据库配置方面有问题呢
最后搞了半天才知道:
sql> show autocommit
aurocommit OFF
-----------------------------------
原来 insert into tab values ()的时候 还需要 再执行一次 commit;
提交数据
本文探讨了在使用Hibernate框架保存实体时遇到的具体错误及其解决办法,并详细介绍了如何正确配置实体名称。此外,还讨论了在Oracle数据库中执行插入操作后需要手动提交数据的重要性。
4662

被折叠的 条评论
为什么被折叠?



