hibernate中用save方法保存一个对象时,总是报Statement parameter 2 not set错

来源:百度知道 编辑:UC知道 时间:2024/05/19 00:01:49
hibernate中用save方法保存一个对象时,总是报Statement parameter 2 not set错,配置文件中设计的表id为自增,应该是不需要插入id字段的,但是打印的insert语句是insert into User (name, id) values (?, ?),请问这是怎么回事?
附上配置文件
<?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="hibernate.User">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name" ></property>
</class>
</hibernate-mapping>
数据库是MySQL,我也试过用identity,还是有错

你在hibernate的配置文件中是怎么写的?
也就是
user.hbm.xml
是否将id设置为自增的,也就是在user.hbm.xml文件中对id的设置

问题补充回答:
你没有指定数据库中表的列吧
是不是应该改成
<?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="hibernate.User">
<id name="id" column="id" type="int">
<generator class="native"></generator>
</id>
<property name="name" column="name" type="String"></property>
</class>
</hibernate-mapping>
你再试一试

错误提示说了,第二个值没插进去,你的ID要是自增的,就不要插值,insert into User (name) values (?),ID它自己就会插