今天在做NHibernate时老出现一个could not insert into 数据库的异常,在网上查阅资料后发现是在<generator class="native" />配错了,这个配置默认的是数据库表中主键字段自增,而我的表在设计时不是自增的,在添加数据的时候还给主键Id赋了值,所以导致这种错误。现将class 各种配置意义举例如下:
1、identity:用于MySql数据库。特点:递增
 <id name=\"id\" column=\"id\">
    <generator class=\"identity\"/>
 </id>
  注:对于MySql数据库使用递增序列时需要在建表时对主键指定为auto_increment属性。
 
2、sequence:用于Oracle数据库
 <id name=\"id\" column=\"id\">
   <generator class=\"sequence\">
     <param name=\"sequence\">序列名</param>
   </generator>
 </id>
 
3、native:跨数据库时使用,由底层方言产生。
 Default.sequence为hibernate_sequence
 <id name=\"id\" column=\"id\">
   <generator class=\"native\"/>
 </id>
  注:使用native时Hibernate默认会去查找Oracle中的hibernate_sequence序列。
  如果Oracle中没有该序列,连Oracle数据库时会报错。
 
4、hilo:通过高低位合成id,先建表hi_value,再建列next_value。必须要      
       有初始值。
 <id name=\"id\" column=\"id\">
    <generator class=\"hilo\">
      <param name=\"table\">high_val</param>
       <param name=\"column\">nextval</param>
      <param name=\"max_lo\">5</param>
    </generator>
 </id>
 
5、sequencehilo:同过高低位合成id,建一个sequence序列,不用建表。
<id name=\"id\" column=\"id\">
<generator class=\"hilo\">
<param name=\"sequence\">high_val_seq</param>
<param name=\"max_lo\">5</param>
</generator>
</id>
6、assigned:用户自定义id;
<id name=\"id\" column=\"id\">
<generator class=\"assigned\"/>
</id>
 
7、foreign:用于一对一关系共享主健时,两id值一样。

转载于:https://www.cnblogs.com/quandeboke/archive/2013/04/15/3022554.html

could not insert into NHibernate数据库问题解决相关推荐

  1. mysql 4.0.27 下载,CentOS编译Mysql 4.0.27数据库问题解决

    CentOS编译Mysql 4.0.27数据库问题解决以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 现在好多人都用起了 ...

  2. C++ 开发中如何利用sql语句(insert语句)向数据库中插入变量

    **问题描述:**在C/S开发过程中,当客户端向服务端发送接口(结构体)信息时,服务端需要将接收到的信息存入数据库,但是,常规insert语句只能存确定的值到数据,当客户端传入的值不确定,且为了保证代 ...

  3. Nexus私服仓库数据损坏 无法加载数据库问题解决

    Nexus私服仓库数据损坏 无法加载数据库问题解决 快进到解决办法 周日为了解决另一个问题重启服务器导致Nexus私服仓库损坏,一直无法启动,记录一下解决方案 一开始根据Canot oppen loc ...

  4. excel数据表转成insert语句插入数据库

    有时候得到的是一张数据图表,要将这张图表完完全全复制粘贴到数据库中是一个比较复杂的事情,如果只是一个晓得数据库,还可以一行一行的输入,但是如果是一张大的数据表的话,这个工作量就会非常大,现在为大家介绍 ...

  5. Nhibernate一些问题解决方法

    问题1.未能找到元素"urn:nhibernate-mapping-2.0:hibernate-mapping"的架构信息. file:///c:/inetpub/wwwroot/ ...

  6. 关于使用datagrip连接postgresql不显示数据库问题解决

    配置和驱动都检查了没问题,网上大多数都是关于数据库表不展示的问题,这个只要右击连接源,选择属性,再点击架构选择全部就ok: ok,再说下数据库不展示的问题,点击测试连接,确实连接上了,ok看下图,也是 ...

  7. linux系统下配置mysql数据库问题解决。

    一.安装mysql8.0后systemctl启动失败,找不到mysqld服务单元. 解决:打开/etc/my.cnf.d中的mysql-server.conf 查看datadir路径,给文件夹配置权限 ...

  8. mysql insert if exists_mysql数据库中的insert if not exists

    当记录不存在时插入,即insert if not exists.mysql中,插入(insert)一条记录很简单. 但在一些特殊应用中,插入记录前,需要检查这条记录是否已存在,只有当记录不存在时才执行 ...

  9. mysql insert 嵌套_「insert语句」数据库插入insert语句中添加嵌套查询select - seo实验室...

    insert语句 示例: insert into mytable(X,Y,Z) Values((SELECT X from basetable WHERE ID = 8),(SELECT Y from ...

最新文章

  1. python气象数据可视化_python grib气象数据可视化
  2. TP3.2.3 页面跳转后 Cookie 失效 —— 参考解决方案
  3. Linux Oracle10g安装
  4. Theano mnist数据集格式
  5. htc m8 wp android,区别仅系统?WP/Android两版HTC One M8对比
  6. 谁来执行Rebalance以及管理consumer的group呢?
  7. vue 源码学习(一) 目录结构和构建过程简介 1
  8. eclips git中的add to Index无效解决
  9. 使用Android Studio打包app
  10. Android设为系统默认的短信应用
  11. 日志的打印 —— Java 支持
  12. 习题3-6 纵横字谜的答案(Crossword Answers, ACM/ICPC World Finals 1994, UVa232)
  13. 自学android要多长时间,自学android开发,从零开始学Android
  14. CSS行内样式内部样式外部样式
  15. 微商引流产品有哪些?做微商如何引流以及推广产品?
  16. python3修改文件的编码格式_python批量修改文件编码格式的方法
  17. 浅谈能源管理系统在钢铁企业上的应用
  18. 【收集】网络上各路大侠放出的面试题、求职技巧
  19. 一年级上册知识点——语文(人教版)
  20. 成为oracle白金会员,华为成为Linux基金会白金会员

热门文章

  1. Netty 简单样例分析(io传输的框架)
  2. OS X进程管理之launchctl
  3. java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝
  4. js+css立体旋转
  5. android 开发时遇到的环境问题3--eclipse整个项目工程报错
  6. SGI STL 学习笔记二 vector
  7. base64图片保存获取本地路径
  8. 无法启动此程序,因为计算机中丢失VCRUNTIME140.dll 尝试重新安装此程序以解决此问题...
  9. 2018 GDCPC 省赛总结
  10. 开发教程(四) MIP组件平台使用说明