金色的骷髅 发表于 2015-1-18 11:06:22

发布一篇利用Apache OpenJPA开辟EJB 3.0使用,第5部分: 实体标识的主动天生 ...

java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的),
数据的独一性是一切使用程序十分基础的请求,由开辟者大概用户来保护这类独一性存在着较年夜的风险,因而,由体系主动发生独一标识是一种罕见的做法。OpenJPA中撑持四种分歧的实体标识主动天生战略:
容器主动天生的实体标识;
利用数据库的主动增加字段天生实体标识;
依据数据库序列号(Sequence)手艺天生实体标识;
利用数据库表的字段天生实体标识;
这四种体例各有优弱点,开辟者能够依据实践情形举行选择。
可选择的正文
要让容器和数据库分离办理实体标识的主动天生,依据实践情形的分歧,开辟者能够选择javax.persistence.*包上面的GeneratedValue、SequenceGenerator、TableGenerator三个正文来形貌实体的标识字段。
@javax.persistence.GeneratedValue
每个必要主动天生实体标识的实体都必要为它的实体标识字段供应GeneratedValue正文和响应的参数,OpenJPA框架会依据正文和参数来处置实体标识的主动天生。
利用GeneratedValue正文主动天生的实体标识能够是数值范例字段如byte、short、int、long等,大概它们对应的包装器范例Byte、Short、Integer、Long等,也能够是字符串范例。
GeneratedValue正文能够撑持两个属性strategy和generator。
strategy
strategy是GenerationType范例的枚举值,它的内容将指定OpenJPA容器主动天生实体标识的体例。strategy属性能够是以下列举值:
GeneratorType.AUTO
暗示实体标识由OpenJPA容器主动天生,这也是Strategy属性的默许值。
GenerationType.IDENTITY
OpenJPA容器将利用数据库的自增加字段为新增添的实体对象赋独一值,作为实体的标识。这类情形下必要数据库供应对自增加字段的撑持,经常使用的数据库中,HSQL、SQLServer、MySQL、DB2、Derby等数据库都可以供应这类撑持。
GenerationType.SEQUENCE
暗示利用数据库的序列号为新增添的实体对象赋独一值,作为实体的标识。这类情形下必要数据库供应对序列号的撑持,常用的数据库中,Oracle、PostgreSQL等数据库都可以供应这类撑持。
GenerationType.TABLE
暗示利用数据库中指定表的某个字段纪录实体对象的标识,经由过程该字段的增加为新增添的实体对象赋独一值,作为实体的标识。
<p>
但是一些大型开发或者是保密型比较高的项目都会用java,原因有2点,一:java是开源的,不怕别人留后门,偷我工具,.net就不一样了,保持微软的一向风格,源代码不公开

老尸 发表于 2015-1-20 14:31:43

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

简单生活 发表于 2015-1-25 10:24:28

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

愤怒的大鸟 发表于 2015-1-29 17:30:51

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

若天明 发表于 2015-1-30 10:43:22

是一种使用者不需花费很多时间学习的语言

再现理想 发表于 2015-2-1 17:29:30

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

飘灵儿 发表于 2015-2-7 12:00:17

是一种突破用户端机器环境和CPU

莫相离 发表于 2015-2-21 20:31:38

是一种使网页(Web Page)产生生动活泼画面的语言

海妖 发表于 2015-3-13 10:06:29

是一种使用者不需花费很多时间学习的语言

精灵巫婆 发表于 2015-3-20 19:06:05

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
页: [1]
查看完整版本: 发布一篇利用Apache OpenJPA开辟EJB 3.0使用,第5部分: 实体标识的主动天生 ...