不能执行update,为什么得看源代码了
解决方案 »
- 数据库设计问题,在线等,急急急
- 帮我看看 哪里出错了,求大神!!
- aix +tomcat5.0.28+jdk1.42的内存问题?
- 谁能帮我看下这个servelet 为什么输出流输不出去 郁闷死了
- 服务端传递数据给客户端问题
- 用JBoss生成EJB的一个问题。
- 求助struts中:form.java中使用数组的问题?
- 100分:JAVA 有没有成熟好用的 class browser (用来浏览JAVA 类库)
- 还是socket问题。在线给分(100分)
- 求助易邮服务器的几个问题
- Hibernate!数据插入、更新失败
- Spring2+Hibernate3+Oracle9i存取NCLOB字段报DataAccessResourceFailureException
java.sql.BatchUpdateException: ORA-01401: 列に挿入した値が大きすぎます。
看看是不是字段长度不够。。
其次代码是没有问题的,我可以执行查询,删除,更新等操作,但是就是不能插入数据.
ID是数据库里面存在的列,如果不设置ID的话,是不能插入的.
看你的配置,ID是自动生成的32位字符串,在代码中是不需要调用pojo的setId()方法的(如果需要手动设置,配置uuid.hex有什么意义呢?)。你看看数据库里面ID字段是多少位的,代码中有setId的操作的话,删掉。试试,用代码来验证是最好的方法:)
<id name="id" column="ID" type="string">
<generator class="uuid.hex"/>
</id>既然你的主键是uuid.hex类型的,那就没有那个必要手动去设置~!
你还可以把class = "uuid.hex"改成class="assigned"也就不会有问题了!~!
Exception in thread "main" org.hibernate.exception.ConstraintViolationException:
Could not execute JDBC batch update
没有找到JDBC 没有更新Hibernate: insert into PERSON (NAME, PASSWORD, ID) values (?, ?, ?)
所以您的数据insert不进去
<id name="id" column="ID" type="string">
<generator class="uuid.hex"/>
</id>
把class="uuid.hex"设置成为class="native"
http://docs.huihoo.com/hibernate/reference-v3_zh-cn/associations.html
这里有详细的native和 assigned自动标识列
若您手手动分配的用assigned
自动生成的用native
hibernate只支持hql语句.所以你的insert into PERSON (NAME, PASSWORD, ID) values (?, ?, ?)
这句话应该换成getHibernateTemplate().save(实体对象[Person]);
<id name="id" column="ID" type="string">
<generator class="uuid.hex"/>
</id>
//不应手动插入ID