|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
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就不一样了,保持微软的一向风格,源代码不公开 |
|