垃圾的hibernate
hibernate一直以来都以其自动化而闻名于世,我也看过hibernate in action,确实写的不错。然而今天我不得不说他很垃圾,我写了个程序,一直都报错,从晚上8点到现在,我都不知道具体错在哪儿,如果是好的框架,总该告我哪儿有问题,哪儿可以解决,但是我却丝毫没有看出来。贴上代码,大家帮我看看。
Users.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="org.okercn.beans.Users" table="users">
<id name="id" column="id" type="java.lang.Integer">
<generator class="identity" />
</id>
<property name="username" column="username"/>
<property name="passwd" column="passwd" />
<property name="usertype" column="usertype" />
<property name="email" column="email" />
<property name="sex" column="sex" />
<property name="realname" column="realname" />
<property name="birthday" column="birthday" />
<property name="question" column="question" />
<property name="answer" column="answer" />
</class>
</hibernate-mapping>
public class BaseDao extends HibernateDaoSupport {
public void save(Object obj) throws Exception {
getSession().save(obj);
}
}
错误如下:
nate: insert into users (username, passwd, usertype, email, sex, realname, birthday, question, answer, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2012-3-29 0:39:57 org.hibernate.util.JDBCExceptionReporter logExceptions
警告: SQL Error: 0, SQLState: 07001
2012-3-29 0:39:57 org.hibernate.util.JDBCExceptionReporter logExceptions
严重: No value specified for parameter 10
org.hibernate.exception.SQLGrammarException: could not insert: [org.okercn.beans.Users]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:40)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2158)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2638)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:48)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
at org.okercn.dao.BaseDao.save(BaseDao.java:10)
at org.okercn.service.BaseService.save(BaseService.java:12)
at org.okercn.service.BaseService$$FastClassByCGLIB$$5bf622db.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
at org.okercn.service.UserService$$EnhancerByCGLIB$$bbe8521f.save(<generated>)
at org.okercn.action.UserAction.regUser(UserAction.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept
[解决办法]
用log4j打印日志看看。
[解决办法]
2012-3-29 0:39:57 org.hibernate.util.JDBCExceptionReporter logExceptions
严重: No value specified for parameter 10
org.hibernate.exception.SQLGrammarException: could not insert: [org.okercn.beans.Users]
像这些都是共性的日志 网上搜搜!
[解决办法]
这是他自己写的东西 你网上去找找的到啊~~哈哈哈哈
[解决办法]
晕。。。。
[解决办法]
我笑了
[解决办法]
无语、你不能说Hbibernate垃圾、只能说自己的sql基础不牢固、
你的id既然是自增长的、那为何插入的时候还要赋值呢?
[解决办法]
为什么别个用都不的错用就错了!它要是真想你说的那么垃圾!又为啥有那么多用它!不要永远在别人身上找问题!在自己身上找找原因吧!
还有明明id是自增的 想不通你为啥还在自己添加id属性 自己看看自己错在那了
[解决办法]
No value specified for parameter 10
第10个参数有问题。
[解决办法]
自己是超级菜鸟,还好怪Hibernate不好,英语也超烂,出错信息说的清清楚楚:
No value specified for parameter 10
没有给第10个参数赋值
[解决办法]
没想到围观的群众那么少,难道大家都懒得吐槽了?
[解决办法]
问题明显就是在插入id的时候 你可以删掉<generator class="identity" />试试
[解决办法]
<generator class="identity" /> ?? 你用的是什么数据库?貌似只有sqlserver才能用这个。。
而且,如果id自增的话,是不能给id赋值的。。
[解决办法]
错误如下:
nate: insert into users (username, passwd, usertype, email, sex, realname, birthday, question, answer, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2012-3-29 0:39:57 org.hibernate.util.JDBCExceptionReporter logExceptions
警告: SQL Error: 0, SQLState: 07001
2012-3-29 0:39:57 org.hibernate.util.JDBCExceptionReporter logExceptions
严重: No value specified for parameter 10
org.hibernate.exception.SQLGrammarException: could not insert: [org.okercn.beans.Users]
是不是第十个参数没值?(No value specified for parameter 10)
是否用DB2 ?
SQLState: 07001 : 对于参数标记的数目来说,主机变量的数目不正确。
[解决办法]

[解决办法]
错误的原因是:为对象设置属性值时与该值对象的属性类型不一致.
[解决办法]
试试。。
[解决办法]
你数据库中是否给id做序列自曾了,最好id给框架自动生成,可能是id重复了!!!!
[解决办法]
找GOOGLE老师吧
[解决办法]
吃不到葡萄说葡萄酸。
[解决办法]
高手!!!!!
[解决办法]
这是个水贴..
另加一句 兰州烧饼!!
[解决办法]
Hibernate挺好用的,虽然有时候一个问题能把我折磨三天,上google查查
[解决办法]
出了问题,要从自己身上找原因
[解决办法]
这错误提示不明显写在那么,你SQL里第十个参数ID出错。自己不找自身原因,在这里抱怨了。汗!
[解决办法]
楼主准备自己写框架 ?
[解决办法]
mybatis感觉比hibernate好用,更灵活。
不过楼主这个问题,跟hibernate无关,很无语。
[解决办法]
建议楼主把英语专8过了、然后在找下hibernate的开发人员开发出一套汉语的异常抛出。
然后楼主就可以1V5了、后期大崛起啊、
个人很想看下楼主的dao实现语句。
另:13楼是正解。
[解决办法]
No value specified for parameter 10
第十个参数(ID)没有值,估计是你在数据库中没有设置ID为自增。
------解决方案--------------------
传递的参数问题 。。