Hibernate (三)主键生成方式

本文介绍了Hibernate中主键生成的几种策略,包括assigned、increment、sequence、identity和foreign,并详细解释了每种策略的工作原理及适用场景。针对不同的数据库支持,如Oracle、MySQL和SQL Server,提供了相应的主键生成策略建议。
摘要由CSDN通过智能技术生成

参考文献

http://blog.csdn.net/wanghuan203/article/details/7562395

http://www.cnblogs.com/hoobey/p/5508992.html

声明:主键生成配置直接摘抄了http://www.cnblogs.com/hoobey/p/5508992.html这篇博客的Hibernate各种主键生成策略与配置详解,主要是人家总结的太详细了,我就直接用了,特此感谢。

    hibernate提供的主键生成策略,使我们可以在实体类的映射xml文件中设定关键字来告诉hibernate我们要使用的主键生成方式,然后hibernate会根据设定完成数据库的主键控制。

一、实体映射文件(*.hbm.xml)中对id生成策略配置格式

1:user的实体类user.java

package com.entity.hibernate;  
  
public class User {  
  
       private int id;          
       private String name;   
       public User(){}  
       public int getId() {  
           return id;  
       }  
       public void setId(int id) {  
           this.id = id;  
       }  
       public String getName() {  
           return name;  
       }  
       public void setName(String name) {  
           this.name = name;  
       }  
  
} 
2:user对应的映射文件user.hbm.xml
<?xml version="1.0"?>  
<!DOCTYPE hibernate-mapping PUBLIC   
  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
<hibernate-mapping>  
   <class name="com.entity.hibernate.User">  
            <id name="id">  
                <generator class="uuid"/>  
            </id>  
            <property name="name"/>                  
   </class>  
</hibernate-mapping>  
主键生成配置

<id name="id" column="表主键字段名" type="java.lang.Integer">
    <generator class="设置主键生成策略类型"/>
</id>
二、主键生成配置

1:assigned
主键由外部程序负责生成,在 save() 之前必须指定一个。Hibernate不负责维护主键生成。与Hibernate和底层数据库都无关,可以跨数据库。在存储对象前,必须要使用主键的setter方法给主键赋值,至于这个值怎么生成,完全由自己决定,这种方法应该尽量避免。

<id name="id" column="id">
    <ge
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值