`
Hello______world
  • 浏览: 17573 次
社区版块
存档分类
最新评论

hibernate 自动生成主键,即主键自增长

    博客分类:
  • sql
阅读更多
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.shjv.tdscdma.epmsgroup.info.domain">
    <!-- 
	    参数
	-->
    <class name="PmsElectronicSignatures" table="pms_electronic_singnature_t" lazy="true">
		<id name="kid" type="java.lang.String">
            <column name="id" length="32" />
            <generator class= "uuid"></generator>
        </id> 
		<property name="updatetime" type="java.sql.Timestamp">
			<column name="updatetime" />
		</property>  
		<property name="url" type="java.lang.String">
			<column name="url" />
		</property>
		<property name="username" type="java.lang.String">
			<column name="username" />
		</property>
		<property name="isgained" type="java.lang.Boolean">
			<column name="isgained" />	
		</property>
    </class> 
</hibernate-mapping>
================================================================================


public class PmsElectronicSignatures extends DomainObject{
	    private static final long serialVersionUID = 6331142274237543842L;
	    private String kid;
	    private String username;
	    private String url;
	    private Date updatetime;
	    private boolean isgained;
	    
	   
		public String getKid() {
			return kid;
		}
		public void setKid(String kid) {
			this.kid = kid;
		}
		public String getUsername() {
			return username;
		}
		public void setUsername(String username) {
			this.username = username;
		}
		public String getUrl() {
			return url;
		}
		public void setUrl(String url) {
			this.url = url;
		}
		public Date getUpdatetime() {
			return updatetime;
		}
		public void setUpdatetime(Date updatetime) {
			this.updatetime = updatetime;
		}
		public boolean isIsgained() {
			return isgained;
		}
		public void setIsgained(boolean isgained) {
			this.isgained = isgained;
		}
		
		 @Override
			public String toString() {
				return "PmsElectronicSignatures [kid=" + kid + ", username="
						+ username + ", url=" + url + ", updatetime=" + updatetime
						+ ", isgained=" + isgained + "]";
			}
		@Override
		public int hashCode() {
			return super.hashCode()*this.kid.hashCode();
		}
		@Override
		public boolean equals(Object object) {
			if(!(object instanceof PmsElectronicSignatures)){
				return false;
			}
			
			PmsElectronicSignatures pmsElectronicSignatures = (PmsElectronicSignatures)object;
			return pmsElectronicSignatures.getKid().compareTo(this.kid)==0 ?true:false;
		}		
}
==================================================================================
drop table if exists pms_electronic_singnature_t;
create table pms_electronic_singnature_t
(
   id                varchar (32) not null primary key,
   username          varchar(255) not null ,
   url               varchar(255) ,
   updatetime         datetime,
   isgained           boolean default false
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

分享到:
评论

相关推荐

    hibernate中自动生成主键的办法

    Hibernate作为一款流行的Java持久层框架,提供了多种自动生成主键的方法,以适应不同场景的需求。本文将深入探讨Hibernate中自动生成主键的几种常见策略及其应用场景。 ### 1. UUID.hex UUID(Universally Unique ...

    Hibernate映射文件主键的生成

    在Hibernate中,只需在实体类的主键字段上添加`@GeneratedValue(strategy = GenerationType.IDENTITY)`注解,Hibernate会自动调用数据库的内置机制来生成主键。 2. **Sequence策略**: 适用于Oracle等支持序列的...

    Hibernate主键生成方式

    开发者可以定义一个序列名称,Hibernate会通过这个序列来生成主键。这种方式确保了主键的顺序性和唯一性,但不适用于所有数据库,比如MySQL就不支持。 5. **Native方式**:`&lt;generator class="native"/&gt;` 这是...

    常用Hibernate主键生成策略

    适用于主键是采用自然主键的形式,即主键列不是自动增长列。 - **优点**:灵活性高,可以根据具体业务逻辑设置主键值。 - **缺点**:在执行新增操作时,需查询数据库判断生成的主键是否已经存在,增加了系统的...

    hibernate主键生成策略

    【hibernate主键生成策略】是Hibernate框架中用于生成持久化对象主键的重要机制,它决定了如何在数据库中创建唯一的标识符。在SSH(Spring、Struts、Hibernate)架构中,Hibernate作为持久层框架,主键生成策略的...

    Hibernate自动生成配置文件

    在向导中,配置Hibernate的实体类名称、包名等信息,然后指定主键生成策略,比如可以选用“identity”表示由数据库自动生成主键。点击“Next”和“Finish”,MyEclipse会自动生成对应的Hibernate配置文件(`...

    hibernate的主键生成策略

    increment策略由Hibernate在内存中生成主键,每次递增1。它不依赖于数据库的序列或自增功能,因此可以跨数据库使用。然而,由于它是基于Java的同步机制,当多个JVM并发访问时可能会出现主键冲突。所以,它适用于单...

    Hibernate主键生成策略

    - **定义**:利用数据库自身的自动增长字段特性来生成主键。 - **支持的数据库**:SQL Server, MySQL等。 - **优点**: - 简单高效,性能优秀。 - **缺点**: - 不适用于所有数据库类型,比如Oracle就不支持自动...

    持久化类主键生成策略+例子

    4. **`hilo`**:HiLo算法,通过高位和低位值组合生成主键,减少对数据库的访问。 5. **`assigned`**:主键由应用程序指定,Hibernate不负责生成。 6. **`increment`**:在内存中递增主键值,不依赖数据库,适用...

    在hibernate中实现oracle的自动增长

    本文将深入探讨如何在Hibernate中实现Oracle数据库的自动增长特性,这一功能对于确保数据表中的主键唯一性至关重要。 ### Oracle数据库的自动增长机制 Oracle数据库提供了强大的序列(sequence)功能来支持自动增长...

    Hibernate主键生成

    1. **increment**:此策略对long、short或int类型的字段生成自动增长的主键。主键值按数值顺序递增。但这种方法存在并发问题,如果多实例访问同一数据库,可能导致主键重复。 2. **identity**:适用于SQL Server、...

    用MyEclipse自动生成hibernate映射文件和实体类

    默认情况下,Hibernate可能会选择自动增长策略,但根据实际需求,可能需要使用`assigned`策略,即主键由应用逻辑生成,例如使用序列或自定义ID生成器。修改后的配置如下: ```xml ``` 这段配置表示主键...

    Java探索之Hibernate主键生成策略详细介绍

    Increment主键生成策略是由Hibernate从数据库中获取主键的最大值,然后在内存中生成主键。这种策略可以跨数据库,但它有一个缺点,即在多进程并发更新数据库时,可能会产生主键冲突。因此,它适合单一进程访问数据库...

    hibernate映射文件生成数据库

    二、Hibernate生成数据库步骤 1. 创建实体类:首先,你需要定义Java实体类,这些类代表了数据库中的表。每个类对应一个数据库表,类的属性对应表的列。 2. 编写映射文件:对于每个实体类,编写相应的Hibernate映射...

    Hibernate主键类型说明和配置手册.doc

    5. **sequence**: 使用数据库的序列生成主键,适用于DB2、PostgreSQL、Oracle、SAP DB、McKoi和Interbase。 6. **hilo**: 使用Hi-Lo算法,需要一个数据库表来存储生成的主键。不适用于JTA环境或自定义数据库连接。 ...

    真实项目中关于主键生成方式的剖析(JPA)

    而Hibernate提供了跨数据库的主键生成策略,例如`native`策略,它会根据底层数据库自动选择合适的主键生成方式(如MySQL的自动增长ID或Oracle的序列)。 在JPA中,通过`@GenericGenerator`注解可以定义主键的生成...

Global site tag (gtag.js) - Google Analytics