首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

Unknown column 'bsname' in 'field list'解决方法

2012-04-08 
Unknown column bsname in field list项目中用struts来进行前台设计,其中对一个表单的添加修改操作,都

Unknown column 'bsname' in 'field list'
项目中用struts来进行前台设计,其中对一个表单的添加修改操作,都用在一个action中,action如下:

Java code
AccountTable account = (AccountTable) request.getSession()        .getAttribute("accountInfo");        flag = crmDao.getBusinessByName((String) f.get("bsname"),account);        JzBusiness business = null;        String bsid = request.getParameter("bsid");        if (bsid != null) {            business = crmDao.getJzBusiness(bsid);            boolean s = !business.getBsname().equals((String) f.get("bsname"));            if (!business.getBsname().equals((String) f.get("bsname"))) {                if (flag) {                    request.setAttribute("errormessage", "业务已经存在!");                    return mapping.findForward("businessexit");                }            }        } else {            if (flag) {                request.setAttribute("errormessage", "业务已经存在!");                return mapping.findForward("businessexit");            }            business = new JzBusiness();        }        business.setBsname((String) f.get("bsname"));        business.setComments((String) f.get("comment"));        int type = Integer.parseInt((String) f.get("remindtype"));        business.setRemindtype(type);        business.setAccountTable(account);        crmDao.addBusiness(business);

hibernate的映射文件如下:
Java code
<hibernate-mapping>    <class name="cn.qdrk.strive.model.JzBusiness" table="jz_business">        <cache usage="read-write"/>        <id name="bsId" type="java.lang.Integer">            <column name="bs_id" />            <generator class="native"></generator>        </id>        <many-to-one name="accountTable" class="cn.qdrk.strive.model.AccountTable" fetch="select">            <column name="account_id" />        </many-to-one>        <property name="bsname" type="java.lang.String">            <column name="bsname" length="150" not-null="true" />        </property>        <property name="comments" type="java.lang.String">            <column name="comments" length="200" />        </property>        <property name="remindtype" type="java.lang.Integer">            <column name="remindtype" />        </property>        <set name="jzKmessages" inverse="true">            <key>                <column name="bs_id" />            </key>            <one-to-many class="cn.qdrk.strive.model.JzKmessage" />        </set>    </class></hibernate-mapping>

这个添加,删除都可以,但是当进行编辑操作的时候,也能拿到String bsid = request.getParameter("bsid");但是提交的时候就会报:
Java code
Caused by: org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch updateCaused by: java.sql.BatchUpdateException: Unknown column 'bsname' in 'field list'    at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1666)    at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1082)

但是我查看映射文件以及数据库中的字段都有bsname,form表单中也有,在google上搜索有说是找不到id的,可是我能够拿到要编辑的id,大家帮我看看。

[解决办法]


hibernate配置文件有问题
Unknown column 'bsname' in 'field list' 指的是跟数据库的表字段不对应,看看是不是写错了,或者大小写敏感?
[解决办法]
把数据库中的表删掉再建试试看。。。
[解决办法]
先看看你的Hibernate映射中,'bsname' 这个列对不?
[解决办法]
把这个字段的非空属性都去掉
去掉非空试下,看成不成功.
[解决办法]
up
[解决办法]
看三个地方映射,po ,数据库字段,要么你就把数据库字段copy然后粘贴到vo和映射里面去
[解决办法]
细节问题
[解决办法]
将驱动更新到较高版本的试试!
[解决办法]
先debug下看看是在哪个用bsname的时候出错的,这样范围小一些,
可以定位问题出在哪个文件里面
[解决办法]
把数据库字段copy然后粘贴到vo和映射里面去
[解决办法]
大小写问题?如果是Linux。

热点排行