nhibernate实体类主键ID赋值问题】的更多相关文章

有个同事忽然来找我,说他遇到了一个问题,在调用nhibernate 进行update数据的时候报错,说是有数据行锁定. 看代码,没啥问题. 直接在PL/SQL developer里对数据库进行插入,也没啥问题.应该不是有事务没提交,表被锁了的情况.但我们水平低,为防万一,还是重启了数据库.好不容易重启后再试,问题依旧在,几度夕阳红. 后来将update改为insert,发现还是错.找到报错的详细信息,提示用到了一个大约叫"seq_hibernate"(记得不是很清楚了)的序列.我们没有…
在JPA中,配置实体类的主键的生成策略使用 @GeneratedValue @Id @Column(name = "id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; strategy GenerationType.IDENTITY:自增 GenerationType.SEQUENCE:序列 GenerationType.TABLE:JPA提供的一种机制,通过一张数据表的形式帮助我们完成自增…
一.场景: 插入数据库的值需要立即得到返回的主键id进行下一步程序操作 二.解决方法: 第一种:使用通用mapper的插入方法 Mapper.insertSelective(record): 此方法:插入一条数据,只插入不为null的字段,不会影响有默认值的字段支持Oracle序列,UUID,类似Mysql的INDENTITY自动增长(自动回写)优先使用传入的参数值,参数值空时,才会使用序列.UUID,自动增长 controller的实际应用:使用方法id会直接将映射到参数的实体上使用时直接使用…
http://stackoverflow.com/questions/24725261/how-to-use-a-custom-identity-column-in-sql-with-entity-framework 情景,在mysql的一张表里面的id字段是主键,但是这个主键的值,不是自增的,也不是用户传入的,而是当insert的时候,由触发器来生成的. 这是触发器代码 我们到edmx模型中看看 EF生成的 , 很诡异的是, 由于我们的 creationtime 的字段是 timestamp…
insert元素 属性详解 其属性如下: parameterType ,入参的全限定类名或类型别名 keyColumn ,设置数据表自动生成的主键名.对特定数据库(如PostgreSQL),若自动生成的主键不是第一个字段则必须设置 keyProperty ,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中 useGeneratedKeys ,取值范围true|false(默认值),设置是否使用JDBC的getGenerea…
<insert id="insert" useGeneratedKeys="true" keyProperty="u_Id" parameterType="User" > insert into User ... </insert> 其中 ①.useGeneratedKeys:是否生成主键 ②.keyProperty:实体类对应的ID属性 sql执行完毕后,user对象里的id就会自动赋值…
1,实体类相同属性间赋值 /// <summary> /// 将实体2的值动态赋值给实体1(名称一样的属性进行赋值) /// </summary> /// <param name="model1">实体1</param> /// <param name="model2">实体2</param> /// <returns>赋值后的model1</returns> prote…
<sharding-jdbc 分库分表的 4种分片策略> 中我们介绍了 sharding-jdbc 4种分片策略的使用场景,可以满足基础的分片功能开发,这篇我们来看看分库分表后,应该如何为分片表生成全局唯一的主键 ID. 引入任何一种技术都是存在风险的,分库分表当然也不例外,除非库.表数据量持续增加,大到一定程度,以至于现有高可用架构已无法支撑,否则不建议大家做分库分表,因为做了数据分片后,你会发现自己踏上了一段踩坑之路,而分布式主键 ID 就是遇到的第一个坑. 不同数据节点间生成全局唯一主键…
先说一下没有注解的 先给出实体类: public class City { private int city_id; private String city_name; public int getCity_id() { return city_id; } public void setCity_id(int city_id) { this.city_id = city_id; } public String getCity_name() { return city_name; } public…
NHibernate的联合主键配置比较复杂,初次配置可能需要花些时间,但只要我们理解了,掌握一定的步骤还是很容易的. 1.设计数据结构 Users:用户表 名称 Users 说明 用户表 序号 字段名称 数据类型(长度) 允许空 描述 备注说明 USER_ID VARCHAR(32) 用户ID PK 2 USER_NAME VARCHAR(50) 用户名 3 PASSWORD VARCHAR(32) 密码 4 5 主键 USER_ID UserProfiles:用户Profile表 名称 Use…