zoukankan      html  css  js  c++  java
  • hibernate 插入,更新数据库错误

    Hibernate: insert into TMe_MerchandiseCInfo (ID, MerchandiseCName, SortID, State, MerchandiseCID) values (?, ?, ?, ?, ?)
    [11-11 10:53:41] [http-bio-8080-exec-1] [ERROR][org.hibernate.engine.jdbc.spi.SqlExceptionHelper-146]-当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'TMe_MerchandiseCInfo' 中的标识列插入显式值。
    [11-11 10:53:41] [http-bio-8080-exec-1] [ERROR][org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl-175]-HHH000352: Unable to release batch statement...
    [11-11 10:53:41] [http-bio-8080-exec-1] [ERROR][org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl-176]-HHH000246: SQLException escaped proxy
    java.sql.SQLException: org.apache.commons.dbcp.DelegatingPreparedStatement with address: "SQLServerPreparedStatement:32" is closed.

    hibernate框架默认给数据库中的所有字段插值,包括自增长,所以会报上面的错误,如果不想让hibernate给你的某个字段插值在加上这句(@Column(name = "字段名"insertable = false,updatable = false,deletetable=false))三个的意思是,插入(更新)(删除)数据时不给某字段赋值

    @Column(name = "ID")

    错误:org.hibernate.TransientObjectException: The given object has a null identifier

    我在更新商品分类信息表的时候,之前写的代码有的是自增,有的是uuid,之前想的是这些自增的和uuid类型的东西不用我操心,只是更新了一些其他的属性,然后我就没有把自增的字段和uuid的东西添加并显示出来,如下的代码

    columns: [
    {text:'递增的流水号',dataIndex:'id',xtype:'hidden'},
    {text:'商品编码',dataIndex:'merchandiseCid',xtype:'hidden'},
    {text: '商品名称', dataIndex: 'merchandiseCName'},
    {text: '排序编码', dataIndex: 'sortId'},
    {text: '状态', dataIndex: 'state'}
    ],

    items:[ {fieldLabel:'递增的流水号',name:'tme.id',value:tagMsg.get('id'),xtype:'hidden'},
    {fieldLabel:'商品编码',name:'tme.merchandiseCid',value:tagMsg.get('merchandiseCid'),xtype:'hidden'},

    {fieldLabel: '商品名称',name: 'tme.merchandiseCName',value:tagMsg.get('merchandiseCName')},
    {fieldLabel: '排序编码',name: 'tme.sortId',value:tagMsg.get('sortId')},
    {xtype:'combobox',fieldLabel: '状态',displayField:'name',store:states,valueField:'abbr',name: 'tme.state',value:tagMsg.get('state')}],

    递增的流水号和商品编码是不需要去对用户展示出来的,然后之前就没有写这些东西,但在更新数据的时候他会报上面的错误。

    断点发现在更新的时候去传实体,实体里面的自增字段“递增的流水号”和uuid“商品编码”是为空的,所以不能更新。

    问题:在更新的时候传了一个空的自增属性的值。

    解决方法:那些不需要去展示的东西给他赋个xtype:'hidden'属性,更新的时候就会传到实体里面去了。

  • 相关阅读:
    AppServ设置虚拟主机 及域名连接
    PHPCMS v9 实现首页,列表页,内容页调用点击量方法
    phpcms v9 后台首页 去掉团队信息等版权
    phpcms v9 在当前栏目下获取父栏目与当前栏目的名称与连接
    不是技术牛人,如何拿到国内IT巨头的Offer
    解决phpcms V9缩略图模糊的方法
    apache、nginx、iis 全球分布
    获取屏幕宽度、浏览器宽度、网页高度,宽度信息
    21个适合扁平化设计的创意超链接效果
    javascript模拟鼠标双击事件
  • 原文地址:https://www.cnblogs.com/chfg/p/4088924.html
Copyright © 2011-2022 走看看