hibernate 异常 怎么解决
展开全部
1.Hibernate 常见异常
net.sf.hibernate.MappingException
当出现net.sf.hibernate.MappingException: Error reading resource:…异常时一般是因为映射文
件出现错误。
当出现net.sf.hibernate.MappingException: Resource: … not found是因为XML配置文件没找到所致,有可能是放置目录不正确,或者没将其加入hibernate.cfg.xml中。
2. net.sf.hibernate.PropertyNotFoundException
当出现net.sf.hibernate.PropertyNotFoundException: Could not find a setter for property
name in class …时,原因一般是因为XML映射文件中的属性与对应的Java类中的属性的getter或setter方法不一致。
3. org.hibernate.id.IdentifierGenerationException
当出现org.hibernate.id.IdentifierGenerationException: ids for this class
must be manually assigned before calling
save():异常时,一般是因为<id>元素配置不正确,<id>元素缺少其子元
素<generator></generator>的配置引起。
解决方案:<id>元素映射了相应数据库表的主键字段,对其子元素<generator >,其中class
的取值可以为increment、identity、sequence、hilo、native……等,更多的可参考hibernate参考文档,一般取其值为native 。
net.sf.hibernate.MappingException
当出现net.sf.hibernate.MappingException: Error reading resource:…异常时一般是因为映射文
件出现错误。
当出现net.sf.hibernate.MappingException: Resource: … not found是因为XML配置文件没找到所致,有可能是放置目录不正确,或者没将其加入hibernate.cfg.xml中。
2. net.sf.hibernate.PropertyNotFoundException
当出现net.sf.hibernate.PropertyNotFoundException: Could not find a setter for property
name in class …时,原因一般是因为XML映射文件中的属性与对应的Java类中的属性的getter或setter方法不一致。
3. org.hibernate.id.IdentifierGenerationException
当出现org.hibernate.id.IdentifierGenerationException: ids for this class
must be manually assigned before calling
save():异常时,一般是因为<id>元素配置不正确,<id>元素缺少其子元
素<generator></generator>的配置引起。
解决方案:<id>元素映射了相应数据库表的主键字段,对其子元素<generator >,其中class
的取值可以为increment、identity、sequence、hilo、native……等,更多的可参考hibernate参考文档,一般取其值为native 。
2018-07-30 · 百度知道合伙人官方认证企业
兄弟连教育
兄弟连教育成立于2006年,11年来专注IT职业教育,是国内专业的IT技术培训学校。2016年成功挂牌新三板(股票代码:839467)市值过亿。开设专注程序员培训专注php、Java、UI、云计算、Python、HTML5、
向TA提问
关注
展开全部
hibernate能自动处理RuntimeException,如果是其他的,则要自己进行处理的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Hibernate异常及错误处理——汇总
一、super.getHibernateTemplate()execute(HibernateCallback)
错误信息:
The method execute(HibernateCallback<T>) in the type HibernateTemplate is not applicable for the arguments (new HibernateCallback <List<User_Info>>(){})
发生错误的代码:
@Override public List<User_Info> queryForPage() throws Exception {return this.getHibernateTemplate().execute( new HibernateCallback<List<User_Info>>(){@SuppressWarnings("unchecked")@Overridepublic List<User_Info> doInHibernate(Session session) throws HibernateException { Query query=session.createQuery("from UserInfo"); return query.list();}}); }
原来是包引用错误,引入包的时候一定要小心哦,我是把所有的spring、Hibernate包都添加进工程了,引入的时候一定要注意:
import org.springframework.orm.hibernate3.HibernateCallback;import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
看出来了吧,一个时hibernate3一个时hibernate5,版本不一致怎么接受这样的参数。我使用的hibernate版本是4.3.9。所有都改成
import org.springframework.orm.hibernate4.HibernateCallback;import org.springframework.orm.hi
一、super.getHibernateTemplate()execute(HibernateCallback)
错误信息:
The method execute(HibernateCallback<T>) in the type HibernateTemplate is not applicable for the arguments (new HibernateCallback <List<User_Info>>(){})
发生错误的代码:
@Override public List<User_Info> queryForPage() throws Exception {return this.getHibernateTemplate().execute( new HibernateCallback<List<User_Info>>(){@SuppressWarnings("unchecked")@Overridepublic List<User_Info> doInHibernate(Session session) throws HibernateException { Query query=session.createQuery("from UserInfo"); return query.list();}}); }
原来是包引用错误,引入包的时候一定要小心哦,我是把所有的spring、Hibernate包都添加进工程了,引入的时候一定要注意:
import org.springframework.orm.hibernate3.HibernateCallback;import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
看出来了吧,一个时hibernate3一个时hibernate5,版本不一致怎么接受这样的参数。我使用的hibernate版本是4.3.9。所有都改成
import org.springframework.orm.hibernate4.HibernateCallback;import org.springframework.orm.hi
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
事务配置的问题;报错信息里面写的很清楚了;
看下你DAO的事务是怎么控制的;贴出代码;
比较合理的实践是在你的SERVICE控制事务;而不是在DAO层;
解决这个问题应该不难。
看下你DAO的事务是怎么控制的;贴出代码;
比较合理的实践是在你的SERVICE控制事务;而不是在DAO层;
解决这个问题应该不难。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询