`

Batch update returned unexpected row count from update [0]

 
阅读更多

 

转至:http://www.cnblogs.com/Byrd/archive/2012/3/26.html

1.Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1

Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1这个异常是由于主键设置为自增长,而在我们插入记录的时候设置了ID的值导致的。即在映射文件中,设置 <id name="id" column="ID" type="integer"><generator class="increment"/> </id>,而在插入数据时,又设置了ID值导致的。

若使用触发器时,出错的些错误:

解决方案:

在触发器脚本中添加如下语句——起始处(as 之后 begin之前)set nocount on;结尾处(end之后)set nocount off

原因分析:Nhibernate在对数据库执行更改操作时,会比较更改记录的数量与数据库返回的实际受 影响记录数(也就是@@ROWCOUNT的返回值),如果两者不一致,就会引发上述异常。而让数据库返回的实际受影响记录数发生变化的原因,就是在触发器 中执行了Update、Insert或Delete语句。而nocount开关的作用,就是让SQL Server在执行数据更改操作后不返回受影响记录数。只要在触发器脚本中执行数据库更改操作前打开nocount开关,就可以让Nhibernate得到正常的预期结果,进而消除此异常。

 

 

 2.net.sf.hibernate.PropertyAccessException: exception setting property value with CGLIB setter of com.your.entity.classname.set***()
  也是很常见的错误。引起此错误的原因很多,类型转换出错,NullPoinerExcption等。
   这里说一下NullPointerException,Hibernate有一个问题,对于java类型为基本类型的字段,如果数据库中该字段为 null,则load数据时会触发NullPointerException,从而引起PropertyAccessException。

 3.NHibernate中No row with the given identifier exists
产生此问题的原因: 
         有两张表,table1和table2.产生此问题的原因就是table1里做了关联<one-to-one>或者<many-to- one unique="true">(特殊的多对一映射,实际就是一对一)来关联table2.当hibernate查找的时候,table2里的数据没 有与table1相匹配的,这样就会报No row with the given identifier exists这个错.(一句话,就是数据的问题!
         假如说,table1里有自身的主键id1,还有table2的主键id2,这两个字段. 
         如果NHibernate设置的单项关联,即使table1中的id2为null值,table2中id2中有值,查询都不会出错.但是如果table1中的id2字段有值,但是这个值在table2中主键值里并没有,就会报上面的错! 
         如果NHibernate是双向关联,那么table1中的id2为null值,但是table2中如果有值,就会报这个错.这种情况目前的解决办法就是改成单项关联,或者把不对应的数据改对!

分享到:
评论

相关推荐

    batchupdate

    sqlhelper工具,batchupdate方法

    Spring JdbcTemplate.batchUpdate 例子

    NULL 博文链接:https://rayfuxk.iteye.com/blog/2286519

    mybatis执行批量更新batch update 的方法(oracle,mysql两种)

    主要介绍了mybatis执行批量更新batch update 的方法,提供oracle和mysql两种方法,非常不错,需要的朋友参考下

    Hibernate错误及解决办法集合

    本人做系统时遇到的一些Hibernate问题及解决方案。

    Acount_batch.rar_acount_batch

    用批处理实现帐号登记本软件,能够登记并查询信息,并且将数据隐藏在回收站的目录下。

    mysql-batch:小批量运行大型MySQL UPDATE和DELETE查询,以防止表行级锁定

    安装 pip3 install mysql_batchUPDATE示例您可以使用可用的模式运行此示例以下示例与以下更新相同: UPDATE batch_test SET date = NOW() WHERE number &gt; 0 . 2 AND date is NULL ; 这等效于以20行为批处理此更新: ...

    windows update batch

    一个把指定目录下所有windows更新文件自动安装的小工具,省着自己一个个去点更新文件了,这个软件比批处理文件好的一点就是批处理文件还要手动去添加路径和文件,这个不用制定一个目录后自动查找系统还没有安装过的...

    SQL Server批量插入批量更新工具类

    SQL Server批量插入批量更新工具类,SqlBulkCopy,BatchUpdate

    Applying S88 batch control from a user's prspective .pdf

    Applying S88 batch control from a user's perspective

    The Definitive Guide to Spring Batch, 2nd Edition.epub

    The Definitive Guide to Spring Batch takes you from the “Hello, World!” of batch processing to complex scenarios demonstrating cloud native techniques for developing batch applications to be run on...

    Mybatis Update操作返回值问题

    在获取update操作的返回值时遇到了一个问题,似乎 Mybatis 进行 update 操作得到的 int 返回值并不是影响的行数,下面通过本文给大家分享Mybatis Update操作返回值问题,需要的朋友参考下吧

    spring-batch包

    spring-batch4.0.0 batch spring-batch集成 spring-batch.jar

    tensorflow中next_batch的具体使用

    本文介绍了tensorflow中next_batch的具体使用,分享给... """Return the next `batch_size` examples from this data set.""" if fake_data: fake_image = [1] * 784 if self.one_hot: fake_label = [1] + [0] *

    SpringBoot+Batch实现

    spring batch官方文档:https://docs.spring.io/spring-batch spring batch3.x中文文档:http://www.kailing.pub/SpringBatchReference spring batch官方入门实例:https://projects.spring.io/spring-batch/ 简单...

    data_batch_5_data_batch5_cifar10_data_batch_0_batch_

    cifar-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。有50000个训练图像和10000个测试图像。数据集分为五个训练批次和一个...具体:batch5.mat文件,该训练集可以用于图片识别,非负矩阵分解等。

    test_batch_test_batch_cifar10_batch_

    cifar-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。有50000个训练图像和10000个测试图像。数据集分为五个训练批次和一个测试批次,每个批次有10000个图像。测试批次包含来自每个类别的恰好...

    Spring.Batch批处理框架

    Spring Batch 是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。Spring Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,使得已经使用 Spring 框架的开发者或者企业更...

    SpringBatch批处理框架

    资源名称:Spring Batch 批处理框架内容简介:《Spring Batch 批处理框架》全面、系统地介绍了批处理框架Spring Batch,通过详尽的实战示例向读者展示了Spring Batch框架对大数据批处理的基本开发能力,并对框架的...

    word-count-spring-batch-partitioning:使用 Spring Batch 在 PDF 文件中实现计数词遵循 MasterSlave 模型

    word-count-spring-batch-partitioning 使用 Spring Batch 在 PDF 文件中实现计数词遵循 Master/Slave 模型主/从模型字数统计算法设置、构建和运行初始化数据库创建用于存储 word-count 和 word-count-repository 的...

    SpringBatch-DataMigration SpringBatch数据迁移项目

    1.本项目运行在tomcat容器中,主要功能为从spring_batch_left库的user_from表抓取数据,之后批量插入到spring_batch_right库的user_to表 2.应用quartz对job进行定时触发(目前设置的定时为每隔一分钟执行一次,目前...

Global site tag (gtag.js) - Google Analytics