- 浏览: 516770 次
- 性别:
- 来自: 远方
文章分类
最新评论
-
futoviny:
挺有用的 javax.xml.ws.Holder
CXF学习笔记---让通过参数传递数据 -
zqb666kkk:
能提供下示例demo吗
CXF学习笔记---给CXF加一把锁WS_SECURITY应用 -
hello_world_wdq:
真是坑爹,这能用吗,害我半天时间浪费了
Extjs学习总结---RowExpander 的异步调用 -
ubuntu的疯狂:
第一段代码怎么用????求解释!!弄了很久还是不得结果……
Extjs学习总结---RowExpander 的异步调用 -
107x:
不错,谢谢分享!
[log4j]Slf4j的包冲突
原原英文:
increment
long
, short
or int
that are unique only when no other process is inserting data into the same table. Do not use in a cluster.
identity
long
, short
or int
.sequence
long
, short
or int
hilo
long
, short
or int
, given a table and column (by default hibernate_unique_key
andnext_hi
respectively) as a source of hi values. The hi/lo algorithm generates identifiers that are unique only for a particular database.seqhilo
long
, short
or int
, given a named database sequence.uuid
guid
native
identity
, sequence
or hilo
depending upon the capabilities of the underlying database.assigned
save()
is called. This is the default strategy if no <generator>
element is specified.select
foreign
<one-to-one>
primary key association.sequence-identity
中文理解
Ø “ assigned” :
主键由外部程序负责生成,在 save() 之前指定一个。
Ø “hilo”
通过 hi/lo 算法实现的主键生成机制,需要额外的数据库表或字段提供高位值来源。
Ø “seqhilo”
与 hilo 类似,通过 hi/lo 算法实现的主键生成机制,需要数据库中的 Sequence,适用于支持 Sequence 的数据库,如 Oracle。
Ø “increment”
主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一个变量,以保存着当前的最大值,之后每次需要生成主键的时候将此值加 1作为主键。这种方式可能产生的问题是:不能在集群下使用。
Ø “identity”
采用数据库提供的主键生成机制。如 DB2、 SQL Server、 MySQL 中的主键生成机制。
Ø “sequence”
采用数据库提供的 sequence 机制生成主键。如 Oralce 中的 Sequence。
Ø “native”
由 Hibernate 根据使用的数据库自行判断采用 identity、 hilo、 sequence 其中一种作为主键生成方式。
Ø “uuid.hex”
由 Hibernate 基于 128 位 UUID 算法 生成 16 进制数值(编码后以长度 32 的字符串表示)作为主键。
Ø “uuid.string”
与 uuid.hex 类似,只是生成的主键未进行编码(长度 16),不能应用在 PostgreSQL 数据库中。
Ø “foreign”
使用另外一个相关联的对象的标识符作为主键。
常用example
<!----><!----> <!---->
1. Hi/lo
Hi/lo 有 hilo 和 seqhilo2 种可选择的方法, hilo 需要一个特殊的数据表来保存 hi 值。而 seqhilo2 使用的是类似与 Oracle-style sequence (需要数据库支持)
<id name="id" type="long" column="cat_id">
<generator class="hilo">
<param name="table">hi_value</param>
<param name="column">next_value</param>
<param name="max_lo">100</param>
</generator>
</id>
<id name="id" type="long" column="cat_id">
<generator class="seqhilo">
<param name="sequence">hi_value</param>
<param name="max_lo">100</param>
</generator>
</id>
不幸的是你不能在使用自己的 Connection 给 Hibernate 时候使用 hilo 。例如 jta 的时候。当 Hibernate 用 application server datasource 获得 connection 的时候,你必须合理配置 hibernate.transaction.manager_lookup_class .
2. UUID
UUID 包括: IP address, startup time of the JVM (accurate to a quarter second), system time and a counter value (unique within the JVM) 。 但它不支持 MAC 地址或 memory address ,在使用 UUID 的时候,不要使用 JNI
3 . Identity 和 sequences
有些数据库支持 identity 的,如 (DB2, MySQL, Sybase, MS SQL) ,你就可以使用 Identity 生成 ID 。而如果数据库支持 sequences 的 (DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB) 你就可以使用 sequence 。
<id name="id" type="long" column="person_id">
<generator class="sequence">
<param name="sequence">person_id_sequence</param>
</generator>
</id>
<id name="id" type="long" column="person_id" unsaved-value="0">
<generator class="identity"/>
</id>
有时候我们可以更加灵活一些,为了支持跨平台的我们可以直接使用 native 去让系统自动选择 id 生成, hibernate 可以根据数据库的兼容性自动选择 identity , sequence 和 hilo
4 .Mysql 的auto increate 字段的@id
a). 数据库中一定要确定 "Id " 是"Auto Increase"
b).@Id
@GeneratedValue(generator = "system-increment")
@GenericGenerator(name = "system-increment", strategy = "increment")
private long id
;
发表评论
-
[JAVA]MyEclipse发生deployment failure错误
2013-08-20 04:43 1069一个项目组成员更新了一个jar文件,上传到服务器后。我们更 ... -
[JAVA]将java project转换为Maven project
2012-04-20 06:29 2857在项目folder中的.project文件中加入red 部分 ... -
[JAVA]Validator 应用
2011-11-15 08:06 1475Java validator的应用 Javax Ass ... -
[log4j]Slf4j的包冲突
2011-09-28 06:13 35345在SSH配置时,发现在junit4下测试时,出现 Cause ... -
[Quartz]Spring3.0不支持Quartz2.0
2011-09-13 08:28 4580将quartz从1.7升级到2.01 发现Caused by ... -
[BIRT]web中向Birt报表传参数
2011-07-15 07:06 2244原来用URL方式向Birt进行参数传递,发现二个问题 1.需 ... -
Java加密共通函数
2011-07-06 06:55 1719import java.io.File; import ja ... -
Eclipse---Jet Editor的安装
2010-09-01 01:52 3000JET(Java Emitter Templates)项目是E ... -
使用MoreUnit插件
2010-08-21 06:16 1808moreUnit是一个ec ... -
解决 svn中containing working copy admin area is missing问题
2010-08-18 01:22 17787svn中containing working copy adm ... -
Eclipse----Spring source tools 的安裝
2010-03-17 00:18 5503Eclipse 3.5 安裝 Spring Tool Suit ... -
Eclipse----My eclipse blue 8.0 必需
2010-03-03 07:49 1379用户名:jet_li 注册码:wLR8ZO-655556-6 ... -
Hibernate读书笔记-----一对多映射总结
2009-12-15 01:53 1114在一class中定义多属性 private List< ... -
SVN笔记--变更目录commit时遭遇outofdate
2009-12-04 02:19 2606变更目录后commit svn报out of date 错误。 ... -
几个好用工具
2009-11-11 01:52 1265http://www.eit.name/tools/ ... -
Java---Sonar二分钟安装
2009-10-09 06:02 61311.下载sonar安装版,解压; 2.bin\windo ... -
Java---Eclipse 常用插件
2009-10-08 06:40 21541. Subclipse http://subclip ... -
JBoss---由于启用gzip造成IE6假死机
2009-10-07 01:17 3087开发了一个Web项目,在IE7和Firefox下测试全部ok, ... -
Eclipse svn SVN PROPFIND Request Failed 处理
2009-09-22 05:20 1876公司重新部署了svn,但发现原来好用的svn报SVN PROP ... -
SVN笔记--SVN权限管理补充
2009-05-15 02:05 1361SVN中的权限管理,最容易出问题的地方在用户和权限分配的地方: ...
相关推荐
《深入理解Hibernate配置与映射:hibernate-configuration-3.0.dtd与hibernate-mapping-3.0.dtd解析》 在Java世界里,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而`hibernate-...
1. **实体管理**:Hibernate通过@Entity注解将Java类映射为数据库表,通过@Id指定主键,使得对象可以直接对应到数据库记录。 2. **配置**:Hibernate的配置文件(如hibernate.cfg.xml)中需要设置数据库连接信息、...
HCA的核心在于提供了一系列的注解,如`@Entity`、`@Table`、`@Column`、`@Id`等,这些注解用于标记Java类和类的成员,以便于Hibernate理解如何将它们映射到数据库中的表和字段。例如,`@Entity`注解标记一个类为实体...
很多人为了配置jpa找这个动态产生字节码的jar文件,hibernate-distribution-3.3.1.GA包太大,而hibernate-distribution-3.3.2.GA的jar没有这个jar文件,希望对大家有用
hibernate-jpa-2.0-api-1.0.1.Final.jar
hibernate-jpa-2.0-api-1.0.1.Final-sources.jar hibernate jpa 源代码
- **配置**: 开发者需要在pom.xml或build.gradle文件中添加`hibernate-jpa-2.1-api-1.0.0.final.jar`依赖,然后在应用配置中指定Hibernate作为JPA提供商。 - **实体类**: 使用@Entity注解标记Java类为JPA实体,并...
例如,`@Entity`注解表示一个类作为数据库中的表,`@Table`定义表名,`@Id`标记主键字段。 2. **实体映射** - `@Entity`: 定义一个Java类为数据库实体,每个实例对应数据库的一行记录。 - `@Table`: 指定实体对应...
使用hibernate-validator 进行校验的jar包,里面包括了基础hibernate-validator-5.0.0.CR2.jar hibernate-validator-annotation-processor-5.0.0.CR2.jar 之外,还包括了el-api-2.2.jar javax.el-2.2.4等项目必不可...
hibernate-mapping-3.0.dtd 配置后,就会在xml中进行提示
因为Hibernate在读出hbm.xml文件时需要通过网络读取到hibernate-mapping-3.0.dtd 文件。 如果没有网络不能正常工作。 所以提供上述文件。 以及hibernate-mapping-3.0.dtd,hibernate-configuration-3.0.dtd提供下载...
本篇将详细探讨`hibernate-annotations-3.4.0.GA`和`hibernate-entitymanager-3.4.0.GA`这两个版本中的核心知识点,尤其是它们在注释和枚举映射方面的应用。 首先,`hibernate-annotations`是Hibernate提供的一套...
hibernate-commons-annotations-4.0.1.Final.jar
4. **Entity**:实体类是数据库表的映射,通过`@Entity`注解标记,其属性对应表字段,通过`@Id`定义主键。 5. **Query**:提供了HQL(Hibernate Query Language)和Criteria API,允许以面向对象的方式执行数据库...
【标题】"hibernate-release-4.1.4" 是Hibernate框架的一个版本发布,具体为4.1.4.Final。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发人员在处理数据库时使用面向对象的概念,极大地简化了数据库...
《hibernate-common-annotations.jar:Hibernate ORM框架中的核心注解库详解》 在Java世界里,ORM(Object-Relational Mapping)框架是连接数据库与应用程序的重要桥梁,而Hibernate作为其中的佼佼者,深受广大...
在这个`hibernate-release-5.0.7.Final`版本中,包含了所有相关的jar包,为开发者提供了一个完整的Hibernate ORM解决方案。 在Java开发中,jar(Java Archive)包是Java类库的打包形式,它包含了一系列的类文件和...
1. **环境搭建**:首先,我们需要配置Hibernate的核心库,包括hibernate-core、junit等依赖,通过Maven或Gradle等构建工具添加到项目中。 2. **实体类创建**:在Java中定义一个实体类,例如User,它代表数据库中的...
《Hibernate核心库解析:深入理解hibernate-release-4.2.4_jar.zip》 Hibernate,作为一款广泛使用的Java对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者无需直接编写SQL,就能实现对数据库的操作。...