<?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作为一款流行的Java持久层框架,提供了多种自动生成主键的方法,以适应不同场景的需求。本文将深入探讨Hibernate中自动生成主键的几种常见策略及其应用场景。 ### 1. UUID.hex UUID(Universally Unique ...
在Hibernate中,只需在实体类的主键字段上添加`@GeneratedValue(strategy = GenerationType.IDENTITY)`注解,Hibernate会自动调用数据库的内置机制来生成主键。 2. **Sequence策略**: 适用于Oracle等支持序列的...
开发者可以定义一个序列名称,Hibernate会通过这个序列来生成主键。这种方式确保了主键的顺序性和唯一性,但不适用于所有数据库,比如MySQL就不支持。 5. **Native方式**:`<generator class="native"/>` 这是...
适用于主键是采用自然主键的形式,即主键列不是自动增长列。 - **优点**:灵活性高,可以根据具体业务逻辑设置主键值。 - **缺点**:在执行新增操作时,需查询数据库判断生成的主键是否已经存在,增加了系统的...
【hibernate主键生成策略】是Hibernate框架中用于生成持久化对象主键的重要机制,它决定了如何在数据库中创建唯一的标识符。在SSH(Spring、Struts、Hibernate)架构中,Hibernate作为持久层框架,主键生成策略的...
在向导中,配置Hibernate的实体类名称、包名等信息,然后指定主键生成策略,比如可以选用“identity”表示由数据库自动生成主键。点击“Next”和“Finish”,MyEclipse会自动生成对应的Hibernate配置文件(`...
increment策略由Hibernate在内存中生成主键,每次递增1。它不依赖于数据库的序列或自增功能,因此可以跨数据库使用。然而,由于它是基于Java的同步机制,当多个JVM并发访问时可能会出现主键冲突。所以,它适用于单...
- **定义**:利用数据库自身的自动增长字段特性来生成主键。 - **支持的数据库**:SQL Server, MySQL等。 - **优点**: - 简单高效,性能优秀。 - **缺点**: - 不适用于所有数据库类型,比如Oracle就不支持自动...
4. **`hilo`**:HiLo算法,通过高位和低位值组合生成主键,减少对数据库的访问。 5. **`assigned`**:主键由应用程序指定,Hibernate不负责生成。 6. **`increment`**:在内存中递增主键值,不依赖数据库,适用...
本文将深入探讨如何在Hibernate中实现Oracle数据库的自动增长特性,这一功能对于确保数据表中的主键唯一性至关重要。 ### Oracle数据库的自动增长机制 Oracle数据库提供了强大的序列(sequence)功能来支持自动增长...
1. **increment**:此策略对long、short或int类型的字段生成自动增长的主键。主键值按数值顺序递增。但这种方法存在并发问题,如果多实例访问同一数据库,可能导致主键重复。 2. **identity**:适用于SQL Server、...
默认情况下,Hibernate可能会选择自动增长策略,但根据实际需求,可能需要使用`assigned`策略,即主键由应用逻辑生成,例如使用序列或自定义ID生成器。修改后的配置如下: ```xml ``` 这段配置表示主键...
Increment主键生成策略是由Hibernate从数据库中获取主键的最大值,然后在内存中生成主键。这种策略可以跨数据库,但它有一个缺点,即在多进程并发更新数据库时,可能会产生主键冲突。因此,它适合单一进程访问数据库...
二、Hibernate生成数据库步骤 1. 创建实体类:首先,你需要定义Java实体类,这些类代表了数据库中的表。每个类对应一个数据库表,类的属性对应表的列。 2. 编写映射文件:对于每个实体类,编写相应的Hibernate映射...
5. **sequence**: 使用数据库的序列生成主键,适用于DB2、PostgreSQL、Oracle、SAP DB、McKoi和Interbase。 6. **hilo**: 使用Hi-Lo算法,需要一个数据库表来存储生成的主键。不适用于JTA环境或自定义数据库连接。 ...
而Hibernate提供了跨数据库的主键生成策略,例如`native`策略,它会根据底层数据库自动选择合适的主键生成方式(如MySQL的自动增长ID或Oracle的序列)。 在JPA中,通过`@GenericGenerator`注解可以定义主键的生成...