一个表 对应配置文件 
用hibernate3.jar
在session.save(目标对象)时 报错如下:
org.hibernate.exception.SQLGrammarException: could not insert: Caused by: java.sql.SQLException: Unknown column 'username' in 'field list'表中存在该字段 映射文件貌似也对 为什么会有这样的问题呢?
如何解决?

解决方案 »

  1.   

    'username' 字段的问题咩,首先检查大小写.
    其次,资料不足无法判断.
      

  2.   

    public static void main(String[] args) {
    Session session=HibernateSessionFactory.getSession();
    try
    {
    Users user = new Users();
    user.setUsername("david");
    user.setPwd("1111");
    user.setSex(1);
    Transaction tx = session.beginTransaction();
    session.save(user);
    tx.commit();
                     }
    <?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="com.yd.pojos.Users" table="users">
            <id name="id" type="java.lang.Integer">
                <column name="id" />
                <generator class="identity" />
            </id>
            <property name="username" type="java.lang.String">
                <column name="username" length="50" />
            </property>
            <property name="pwd" type="java.lang.String">
                <column name="pwd" length="50" />
            </property>
            <property name="sex" type="java.lang.Integer">
                <column name="sex" />
            </property>
        </class>
    </hibernate-mapping>
    内容如上
      

  3.   

    把SQL语句打印出来看一下吧。
      

  4.   

    Hibernate: insert into users (pwd, sex, username) values (?, ?, ?)
    语句没有问题吧 ?
      

  5.   

    把 insert into users (pwd, sex, username) values (?, ?, ?) 在数据库里直接执行一次
    看看有username这个字段没,如果没问题的话,就检查你的映射文件和javabean
      

  6.   

    老大你看看,你的字段对应关系有问题呀.
    你是不是有id,pwd,sex,usrname这4个字段吗,你怎么只写了3个,最起码的主键也不能丢呀.
    你可以这样:
    insert into users (id,pwd, sex, username) values (default,?, ?, ?)你这样试试.
      

  7.   

    看异常就晓得是SQL语句的问题,以后碰到这样的问题就应该明白怎么做了吧!