该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-07-13
最近用webwork和hibernate做开发,遇到一个超奇怪的问题,我甚至怀疑是hibernate的一个bug!做了一个用户注册功能,用TableMember对象保存用户的信息,由于要有密码提示问题和答案及找回密码的功能,TableMember和TUserQuestion为多对一的关系。在sql server2000数据库下一切正常;拿到linux的pgsql下发生了问题。问题发生在我用hibernate的saveOrUpdate()方法保存TableMember对象时,发生的错误如下: 2007-07-13 09:19:43,471 ERROR [org.hibernate.util.JDBCExceptionReporter] - <Batch entry 0 insert into com_crazyasp_rights_Member (userid, questionId, answer, username, uib_sex, uib_nickname, uib_realname, uib_birthday, uib_homeland, uib_height, uib_weigth, uib_tel, uib_mobile, uib_qq, uib_msn, uib_image, uib_email, uib_identity, uib_postalCode, uib_address, motto, id) values ( was aborted. Call getNextException() to see the cause.> 2007-07-13 09:19:43,471 WARN [org.hibernate.util.JDBCExceptionReporter] - <SQL Error: 0, SQLState: 42703> 2007-07-13 09:19:43,472 ERROR [org.hibernate.util.JDBCExceptionReporter] - <错误: 关系 "com_crazyasp_rights_member" 的 "questionid" 字段不存在 ><o:p> </o:p> 2007-07-13 09:19:43,474 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] - <Could not synchronize database state with session> org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:59) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:181) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730) at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:815) at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:366) at org.springframework.orm.hibernate3.HibernateTemplate.flush(HibernateTemplate.java:813) at com.crazyasp.common.TableOption.save(TableOption.java:175) 最直接的错误信息为:<错误: 关系 "com_crazyasp_rights_member" 的 "questionid" 字段不存在,而事实上,数据表com_crazyasp_rights_member中有一个字段是questionId,注意I是大写的;当然映射文件中写的也是column=”questionId”,问题是为什么会出来这样的错误,questionid是哪里来的! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-07-13
你说是bug,总要将相关代码贴出来吧?
楼主刚来javaeye,还是看看版规的好 |
|
返回顶楼 | |
浏览 2694 次