不知道,帮你up
去open source 版问问那里的牛人吧

解决方案 »

  1.   

    把xml配置和调用的代码放出来吧。要不光凭这个错误是无法判断的。
      

  2.   

    谢谢关注
    xml文件如下
    <?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>
    <!-- com.megajoy.Message root -->
    <class name="com.megajoy.Message" table="cp_deliver">
    <id column="id" name="id" type="int" unsaved-value="null">
    <generator class="increment"/>
    </id>
    <property column="moFlag" name="flag" type="int"/>
    <property column="moDate" name="orDate" type="date"/>
    <property column="mobile" name="mobile" type="string"/>
    <property column="moContent" name="content" type="string"/>
    <property column="spNumberExt" name="serviceNumber" type="string"/>
    </class>
    </hibernate-mapping>java文件如下
    package com.megajoy;import java.util.Date;/**
    *
    * 更改所生成类型注释的模板为
    * 窗口 > 首选项 > Java > 代码生成 > 代码和注释
    * @author flying
    */
    public class Message {
    private int flag; private Date orDate; private int id; private String content; private String serviceNumber; private String mobile; /**
     * @return
     */
    public String getMobile() {
    return mobile;
    } /**
     * @param i
     */
    public void setMobile(String i) {
    mobile = i;
    } /**
     * @return
     */
    public String getServiceNumber() {
    return serviceNumber;
    } /**
     * @param i
     */
    public void setServiceNumber(String i) {
    serviceNumber = i;
    } /**
     * @return
     */
    public String getContent() {
    return content;
    } /**
     * @param i
     */
    public void setContent(String i) {
    content = i;
    } /**
     * @return
     */
    public int getId() {
    return id;
    } /**
     * @param i
     */
    public void setId(int i) {
    id = i;
    } /**
     * @return
     */
    public Date getOrDate() {
    return orDate;
    } /**
     * @param i
     */
    public void setOrDate(Date i) {
    orDate = i;
    } /**
     * @return
     */
    public int getFlag() {
    return flag;
    } /**
     * @param i
     */
    public void setFlag(int i) {
    flag = i;
    }}请教如何处理上面的问题
      

  3.   

    <hibernate-mapping>
    </hibernate-mapping>
    这个标签是干什么的,
      

  4.   

    估计是你在映射文件中设置了id自动加1,你在sql语句中去掉id字段和相应的值试试
      

  5.   

    如果你的表里的主键id定义的是自增长,那么
    修改一下
    <id column="id" name="id" type="int" unsaved-value="null">
    <generator class="identity"/>
    </id>这样id就由数据库自己提供,插入语句里不包含。