将<hibernate-mapping>中的
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
改成
<generator class="identity" />
试试.
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
改成
<generator class="identity" />
试试.
如果上层用spring等框架控制hibernate,那么检查spring的的声明式事务的配置是否正确,对调用hibernate的业务类的拦截是否起效,方法名的前缀是否配置正确等。
如果是直接由hibernate的session来控制,那么是否正确使用事务了:
Transaction tx = session.beginTransaction();
tx.begin();
try{
session.save(xxx);
tx.commit();
}
catch (Exception e) {
tx.rollback();
}
session.close();
上面的有道理,但你也试着将<property name="age" type="java.lang.Integer">
<column name="age" not-null="true" />
</property>
<property name="name" type="java.lang.String">
<column name="name" length="10" not-null="true" />
</property> 中的not-null="true"删除掉试试看