有个同事忽然来找我,说他遇到了一个问题,在调用nhibernate 进行update数据的时候报错,说是有数据行锁定。

看代码,没啥问题。

直接在PL/SQL developer里对数据库进行插入,也没啥问题。应该不是有事务没提交,表被锁了的情况。但我们水平低,为防万一,还是重启了数据库。好不容易重启后再试,问题依旧在,几度夕阳红。

后来将update改为insert,发现还是错。找到报错的详细信息,提示用到了一个大约叫”seq_hibernate”(记得不是很清楚了)的序列。我们没有定义过这个序列,难道这是一个nhibernate自带的序列?

找来找去,发现实体类代码这里,主键id没有定义如何赋值。

一般地,nhibernate中,实体类映射,对id的赋值有俩方式

Id(s => s.ID).GeneratedBy.Assigned(); //直接赋值
Id(s => s.ID).GeneratedBy.Sequence("SEQ_WebSite"); //用序列

但是我那个同事,是这样写的:

Id(s => s.ID);

啥方式都没指定。猜测是因为没指定主键ID的赋值方式,nhibernate采用了默认方式,用默认的序列seq_hibernate(?)来为它产生值。天知道这个seq_hibernate可能是很多地方都在请求,于是就报了锁定的错误。

将ID采用类似这种方式,指定序列后,问题解决。

Id(s => s.ID).GeneratedBy.Sequence("SEQ_WebSite"); //用序列

最新文章

  1. TTrayIcon用法
  2. Runtime Error---Description: An application error occurred on the server....
  3. Hdu OJ 5115 Dire Wolf (2014ACM/ICPC亚洲区北京站) (动态规划-区间dp)
  4. 【JS复习笔记】01 基本语法
  5. Codeforces Round 261 Div.2 D Pashmak and Parmida's problem --树状数组
  6. 【Shell脚本学习14】Shell echo命令
  7. mysql安装出现error Nr.1045
  8. junit3.8的使用
  9. PAT1118. Birds in Forest (并查集)
  10. NancyFX 第八章 内容协商
  11. solr服务器搭建
  12. 关于activitygroup过时,用frament替换操作
  13. Linux 桌面玩家指南:09. X Window 的奥秘
  14. getparameter的使用
  15. 接口测试工具Jmeter
  16. Django进阶-auth集成认证模块
  17. SQL Server - GO
  18. autotools源文件相同/不同目录下
  19. HttpClient和HttpURLConnection的使用和区别(下)
  20. [ZJOI2012]数列

热门文章

  1. (16) Cloudflare pki公钥基础设施
  2. SONP 是什么
  3. 剑指Offer(书):重建二叉树
  4. Python+selenium常用方法(Webdriver API)
  5. 『NYIST』第九届河南省ACM竞赛队伍选拔赛[正式赛二]- Nearly Lucky Number(Codeforces Beta Round #84 (Div. 2 Only)A. Nearly)
  6. POJ2479【DP 枚举】
  7. 【dfs】codeforces Journey
  8. C语言一些常见的操作字符串方法
  9. C#.net中当地址有中文时,图片无法显示解决方法
  10. C#中的各种排序算法