是因为我的pid参数没有传进去 我试了一下
直接
PurviewItemDefine pid = new PurviewItemDefine();
session.save(pid);
然后提交
也还是这个错误!也就是说pid这个实例根本没传进去。
Hibernate: insert into PURVIEW.PURVIEW_ITEM_DEFINE (PURVIEW_ITEM_DEFINE_NO, PURVIEW_ITEM_DEFINE_NAME, REMAKE, PURVIEW_ITEM_DEFINE_ID) values (?, ?, ?, ?)
net.sf.hibernate.JDBCException: Could not execute JDBC batch update
直接
PurviewItemDefine pid = new PurviewItemDefine();
session.save(pid);
然后提交
也还是这个错误!也就是说pid这个实例根本没传进去。
Hibernate: insert into PURVIEW.PURVIEW_ITEM_DEFINE (PURVIEW_ITEM_DEFINE_NO, PURVIEW_ITEM_DEFINE_NAME, REMAKE, PURVIEW_ITEM_DEFINE_ID) values (?, ?, ?, ?)
net.sf.hibernate.JDBCException: Could not execute JDBC batch update
字段类型的统一应该是Hibernate自己解决的吗?package com.chiatai.demo.dao;import java.io.Serializable;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;/** @author Hibernate CodeGenerator */
public class PurviewItemDefine implements Serializable { /** identifier field */
private String id; /** persistent field */
private Integer purviewItemDefineNo; /** nullable persistent field */
private String purviewItemDefineName; /** nullable persistent field */
private String remake; /** full constructor */
public PurviewItemDefine(Integer purviewItemDefineNo, String purviewItemDefineName, String remake) {
this.purviewItemDefineNo = purviewItemDefineNo;
this.purviewItemDefineName = purviewItemDefineName;
this.remake = remake;
} /** default constructor */
public PurviewItemDefine() {
} /** minimal constructor */
public PurviewItemDefine(Integer purviewItemDefineNo) {
this.purviewItemDefineNo = purviewItemDefineNo;
} public String getId() {
return this.id;
} public void setId(String id) {
this.id = id;
} public Integer getPurviewItemDefineNo() {
return this.purviewItemDefineNo;
} public void setPurviewItemDefineNo(Integer purviewItemDefineNo) {
this.purviewItemDefineNo = purviewItemDefineNo;
} public String getPurviewItemDefineName() {
return this.purviewItemDefineName;
} public void setPurviewItemDefineName(String purviewItemDefineName) {
this.purviewItemDefineName = purviewItemDefineName;
} public String getRemake() {
return this.remake;
} public void setRemake(String remake) {
this.remake = remake;
} public String toString() {
return new ToStringBuilder(this)
.append("id", getId())
.toString();
} public boolean equals(Object other) {
if ( !(other instanceof PurviewItemDefine) ) return false;
PurviewItemDefine castOther = (PurviewItemDefine) other;
return new EqualsBuilder()
.append(this.getId(), castOther.getId())
.isEquals();
} public int hashCode() {
return new HashCodeBuilder()
.append(getId())
.toHashCode();
}}<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="com.chiatai.demo.dao.PurviewItemDefine" schema="PURVIEW" table="PURVIEW_ITEM_DEFINE">
<id column="PURVIEW_ITEM_DEFINE_ID" name="id" type="java.lang.String">
<generator class="uuid.hex"/>
</id>
<property column="PURVIEW_ITEM_DEFINE_NO" length="9" name="purviewItemDefineNo" not-null="true" type="java.lang.Integer"/>
<property column="PURVIEW_ITEM_DEFINE_NAME" length="50" name="purviewItemDefineName" type="java.lang.String"/>
<property column="REMAKE" length="100" name="remake" type="java.lang.String"/>
</class>
</hibernate-mapping>这是我的配置文件
数据库结构是
PURVIEW_ITEM_DEFINE_ID INTEGER(9)
PURVIEW_ITEM_DEFINE_NO INTEGER(9)
PURVIEW_ITEM_DEFINE_NAME varchar
REMAKE varchar
有关系吗?
<generator class="increment"/>
</id>
你是更新还是修改?
我插入一条记录,updata也试过了值一样是问号!
郁闷一下午了!
rekcah_ph(陌生人)
的方法都试了!不行啊!
是怎么回事呢?
PurviewItemDefine pid = new PurviewItemDefine();
pid.setId("6");
pid.setPurviewItemDefineNo(6);//***********
pid.setPurviewItemDefineName("anbasdf");
pid.setRemake("aaaaa");
session.save(pid);
上面打*号的地方参数是int,但在PurviewItemDefine 里并没有看到参数类型为int的方法。
仔细看看控制台打印出来的log,应该有binding '1' to 1这样的信息的这就是他绑定的参数