【第一章 Design】 6 主键生成策略
来源:互联网 发布:maven实战 源码 编辑:程序博客网 时间:2024/05/16 07:54
根据不同的持久化对象和数据库设计,主键值通过几种不同的方式处理。使用这个技术将影响关系映射的实现。下面是一些可能情形的总结。每一种还有详细讲解。
有明确意义的主键
DataObjects可以提供它们的主键值,有些时候很有效,例如一个主键包含一个社区账号,这时候处理主键和其他持久化属性没有什么特别。每一个主键(DbAttribute)将有一个ObjAttribute 映射到它,相应地实现DataObject的java类将包含一个用ObjAttribute描述的属性,这个属性值会保持在数据库。
从关联中提取的主键
一个表的主键列可能会依赖另一个表的主键列。常见的情况是使用“join”分解多到多关联,在这种情况下DataObjec通常不包含主键列映射,而是这个主键值由Cayenne自动提取自另一个关联对象的主键。
通过数据库INSERT提供的主键(自增主键)
有些时数据库有自己的生成专用主键的机制,在数据库添加记录时生成主键,这个特性成为“自增型”或“唯一标识列”。Cayenne 支持这种主键,在这种机制被使用时,在生成器中,DbEntity的主键生成必须设置为"Database-Generated"。现在MySQL和SQLServer适配器有这个特性,并且在默认状态是开启的。
自动生成的主键
在多数情况下,数据库主键明确的关联概念在对象模型中很难适当表达。通常是使用唯一序列号标识数据库中的一行,这就意味着创建一个对应到主键的持久化对象属性需要手工操作。为了简洁操作 Cayenne 为每个对象指定一个 ObjectId ,并在内部操作管理主键的关联。生成机制依赖于使用的DbAdapter,并且用户可以定制这个子类。适配器使用下面的默认生成策略:
- MySQL, PostgreSQL, HSQL适配器:从特定的AUTO_PK_TABLE查找表中,使用select/update。
- Oracle适配器:使用Oracle序列。
- DB2 :使用DB2序列。
- SQLServer , Sybase 适配器: 使用存储过程绑定到 AUTO_PK_TABLE 。
- OpenBase 适配器:通过OpenBase,使用指定特定的NEWID 机制。
为了通过主键自动生成来生成必须的数据库对象,使用CayenneModeler参考下面的步骤操作:here.
Generated Columns 列的生成
原文:
http://cayenne.apache.org/doc/primary-key-generation.html
- 【第一章 Design】 6 主键生成策略
- 【第一章 Design】 7 主键生成详细步骤
- 数据库主键生成策略
- 数据库主键生成策略
- hibernate主键生成策略
- 数据库主键生成策略
- Hibernate 主键生成策略
- 主键生成策略
- Hibernate 主键生成策略
- hibernate 主键生成策略
- Hibernate 主键生成策略
- Hibernate 主键生成策略
- Hibernate 主键生成策略
- 主键生成策略
- hibernate主键生成策略
- hibernate主键生成策略
- Hibernate主键生成策略
- hibernate主键生成策略
- 大三的我该如何
- C#获取串口列表(可用于实现实时监控串口)
- js正则表达式的分组和反向引用
- flex tree的相应操作
- RAC 实例 迁移到 单实例 -- 使用导出导入
- 【第一章 Design】 6 主键生成策略
- 计算机科学数学理论浅谈
- 整合Testlink和bugzilla
- 回调函数中删除调用者
- MySQL性能优化的参数简介
- XMLHttpRequest对象
- CMAKE的使用
- Windows下MinGW与Eclipse CDT开发环境搭建(转)
- 让Excel每次启动都自动打开固定的工作簿