使用 TRegistry 类[1]: 显示各主键下的项 {XP 注册表中的主键} HKEY_CLASSES_ROOT    {文件类型信息} HKEY_CURRENT_USER    {当前用户信息} HKEY_LOCAL_MACHINE  {软硬件信息} HKEY_USERS          {所有用户信息} HKEY_CURRENT_CONFIG  {当前配置信息} {Delphi 定义的常量} HKEY_CLASSES_ROOT    = DWORD($80000000); HKEY_C…
我们在设计数据库表的时候,往往为了方便,主键ID一般采用字符串类型或者GUID类型,这样对于数据库表记录的迁移非常方便,而且有时候可以在处理关联记录的时候,提前对应的ID值.但有时候进行数据记录插入的时候,往往忽略了对ID的赋值处理.为了便于使用或者允许自动赋值,我们可以在数据访问基类中对GUID主键进行自动赋值处理. 1.实体类主键属性的处理 在我们设计基于SqlSugar的框架的时候,实体类定义一个基类Entity<T>,如下代码所示. [Serializable] public abst…
问题的起因,假设有一张表,里面保存了交易订单,每张订单有唯一的ID,有最后更新时间,还有数据,详情如下: 1 2 3 4 5 6 7 +-------+----------+------+-----+---------------------+-------+ | Field | Type     | Null | Key | Default             | Extra | +-------+----------+------+-----+---------------------+…
有个同事忽然来找我,说他遇到了一个问题,在调用nhibernate 进行update数据的时候报错,说是有数据行锁定. 看代码,没啥问题. 直接在PL/SQL developer里对数据库进行插入,也没啥问题.应该不是有事务没提交,表被锁了的情况.但我们水平低,为防万一,还是重启了数据库.好不容易重启后再试,问题依旧在,几度夕阳红. 后来将update改为insert,发现还是错.找到报错的详细信息,提示用到了一个大约叫"seq_hibernate"(记得不是很清楚了)的序列.我们没有…
每张表都一定存在主键吗? 关于这个问题,各位小伙伴们不妨先自己想一想,再往下寻找答案. 首先公布结论:对于 InnoDB 存储引擎来说,每张表都一定有个主键(Primary Key)! 让人非常遗憾的是,网络上至今仍然有非常多的文章是这样的描述:"一张表中必须有聚集索引,但不一定需要主键".前半句是正确的,后半句是大错特错! 对于 InnoDB 存储引擎来说,表采用的存储方式称为索引组织表(index organizedtable),也即表都是根据主键的顺序来进行组织存放的.如果主键都…
如果一个表有多个主键(= =一般比较少) 8.4. 组件作为联合标识符(Components as composite identifiers) 先定义一个类OrderLineId (实现接口,implems java.io.Serializable(把当前对象序列化的接口)), 重写 为什么要序列化?内存满和集群化的时候用,具体百度(= =!其实我就是不懂) 里面有多个成员变量(字段(这些都是主键)) package com.zjx.hibernate; public class Studen…
1.联合主键的映射规则 1) 类中的每个主键属性都对应到数据表中的每个主键列. Hibernate要求具有联合主键的实体类实现Serializable接口,并且重写hashCode与equals方法,重写这两个方法的原因在于Hibernate要根据数据库的联合主键来判断某两行记录是否是一样的,如果一样那么就认为是同一个对象,如果不一样,那么就认为是不同的对象.这反映到程序领域中就是根据hashCode与equals方法来判断某两个对象是否能够放到诸如Set这样的集合当中.联合主键的实体类实现Se…
一. Xml方式 <id>标签必须配置在<class>标签内第一个位置.由一个字段构成主键,如果是复杂主键<composite-id>标签 被映射的类必须定义对应数据库表主键字段.大多数类有一个JavaBeans风格的属性, 为每一个实例包含唯一的标识.<id> 元素定义了该属性到数据库表主键字段的映射. <id name="propertyName"                                         …
hibernate 联合主键生成机制(组合主键XML配置方式)   如果数据库中用多个字段而不仅仅是一个字段作为主键,也就是联合主键,这个时候就可以使用hibernate提供的联合主键生成策略. 具体如下: 可以使用一个组件作为一个实体类的标识符.你的组件类必须满足以下要求: 它必须实现 java.io.Serializable 接口 它必须重新实现 equals() 和 hashCode() 方法,始终和组合关键字在数据库中的概念保持一致 注意:在 Hibernate3 中,第二个要求并非是…
目录: 1. 实现方式一:将复合主键对应的属性与实体其他普通属性放在一起 2. 实现方式二:将主键属性提取到一个主键类中,实体类只需包含主键类的一个引用 在日常开发中会遇到这样一种情况,数据库中的某张表需要多个字段列才能唯一确定一行记录,这时表需要使用复合主键.面对这样的情况Hibernate为我们提供了两种方式来解决复合主键问题. 方式一:将复合主键对应的属性与实体其他普通属性放在一起 例如实体类People中"id"和"name"属性对应复合主键: /*实体类,…