`
lovehui0228
  • 浏览: 101374 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于Hibernate自增Id

阅读更多

自增Id在数据库中还是蛮常用的,以前没有用Hibernate的时候都是写方法得到表中最后一条记录的Id,然后就是一系列的操作,我想Hibernate应该也是类似的原理.

配置一句话,将Hibernate映射文件id那一项修改一个属性<generator class="increment" />

 

贴下我的测试代码:

package test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.bean.hib.MessageContent;

public class HibernateIdTest {
	public static void main(String[] args)
	{
		MessageContent messageContent = new MessageContent();
		messageContent.setMessageContent("lovehui");
		
		SessionFactory factory =
            new Configuration().configure().buildSessionFactory();
		
		Session session = factory.openSession();
		Transaction tx = null;
		
		try {
		    tx = session.beginTransaction();
		    //do some work
            System.out.println(session.save(messageContent).toString());
		    
            tx.commit();
		}
		catch (Exception e) {
		    if (tx!=null) tx.rollback();
		    e.printStackTrace();
		}
		finally {
		    session.close();
		}
	}
}

 设置了自增Id之后就不用给那一项显式赋值了,还有一点,要得到那个Id值根本不用任何操作,它自动返回的就是那个Id值~~~

1
0
分享到:
评论
1 楼 lzy5710303 2011-06-14  
session.save(messageContent).toString()
确实能得到新增的id

相关推荐

    获取自增ID.docx

    本文详细介绍了在Java环境中如何获取自增ID的三种主要方法:XML配置方法、JDBC方法以及Hibernate方法。每种方法都有其适用场景,开发者可以根据项目的具体需求选择最适合的方案。无论是通过框架还是直接使用JDBC API...

    Hibernate教程02_ID生成策略

    在Java的持久化框架Hibernate中,ID生成策略是至关重要的一个环节。它是用来唯一标识数据库中每一行记录的关键部分。本教程将详细讲解Hibernate中的ID生成策略,以及如何在实际项目中灵活应用。 首先,ID生成策略是...

    hibernate联合主键全攻略

    在Hibernate中定义联合主键主要依赖于`&lt;composite-id&gt;`标签。如示例文件所示,`Users`类被设计为具有联合主键,该主键由`name`和`tel`两个字段组成。在`&lt;composite-id&gt;`标签内,通过`&lt;key-property&gt;`子标签分别指定...

    Hibernate+struts实例学习

    表中包含`id`, `name`, `age`, `score`四个字段,其中`id`字段设置为自增主键。这是通过以下SQL语句实现的: ```sql CREATE DATABASE IF NOT EXISTS `crud`; USE `crud`; DROP TABLE IF EXISTS `student`; CREATE ...

    解决Hibernate JPA中insert插入数据后自动执行select last_insert_id()

    )Hibernate: select last_insert_id()表中有个主键是自增列。可是在以往的项目中,没发现有这样的问题。于是在网上各种找也找不到原因。心想可能是配置问题。 最终在persistence.xml配置文件中找

    hibernate最新版jar包(全)

    在Hibernate中,主键通过`@Id`注解标记,并可以使用`@GeneratedValue`控制自增策略。 3. **持久化(Persistence)**: Hibernate通过`Session`接口实现对象的持久化,它可以保存、更新和删除实体对象,并将这些变化...

    Hibernate_

    注解在Hibernate中扮演着关键角色,例如@Entity定义实体类,@Table指定表名,@Id标识主键,@GeneratedValue管理自增策略等。这个文档可能由雷智民撰写或翻译,提供了一手的注解使用方法和实例。 综上所述,学习这些...

    Hibernate4总结文档

    -- generator配置自增 --&gt; &lt;!-- 对于Oracle,可使用&lt;generator class="identity"/&gt; --&gt; &lt;/id&gt; &lt;!-- 其他属性映射 --&gt; ... &lt;/hibernate-mapping&gt; ``` - `&lt;class&gt;`标签定义了实体类(`Teacher`)与表(`...

    hibernate-annotation

    4. `@GeneratedValue`:用于指定主键生成策略,如自增、UUID等。例如: ```java @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; // ... } ``` 5. `@...

    hibernate教程

    - `&lt;id&gt;`标签映射主键,`name`属性指定Java类中的主键属性,`&lt;generator&gt;`定义主键生成方式,如自增、序列等。 - `&lt;property&gt;`标签映射普通属性,`name`对应类属性,`column`对应数据库表的列。 6. **使用...

    Hibernate完全参考手册

    常见的注解有@Entity表示实体类,@Table指定对应数据库表,@Id标识主键,@GeneratedValue处理自增字段等。 四、Session和Transaction 在Hibernate中,Session是持久化操作的主要接口,负责对象的保存、更新、删除...

    hibernate难点重点笔记

    native策略则是由数据库自身决定主键生成,比如在MySQL中通常是自增,这样在查找和删除数据时更为便捷,但在插入时会稍慢。assigned策略允许开发者自定义主键生成方式,可以在程序运行时手动设置,但需注意在save()...

    hibernate映射主键生成策略native

    - **identity**:由数据库自动分配一个唯一值,适用于支持自增字段的数据库如MySQL。 - **sequence**:使用数据库提供的序列生成主键,适用于Oracle等数据库。 - **hilo**:混合高低位算法,通过两个序列分别生成...

    hibernate学习笔记第四天的源码

    这里的`User`类就是一个实体类,`@Id`注解标识`id`字段作为主键,`@GeneratedValue`表示主键自增。 其次,映射文件(Mapping File)通常以`.hbm.xml`为扩展名,它定义了实体类与数据库表之间的关系。映射文件包含了...

    hibernate中创建表

    这里,`@Id`注解标识`id`字段作为主键,`@GeneratedValue`表示主键自增。 2. **配置映射**:使用`@Table`注解指定实体类对应的数据库表名,如: ```java @Table(name = "USER") public class User { // ... } ``` ...

    Hibernate 3 注解技术讲解

    `@Id`注解标记实体类中的主键字段,而`@GeneratedValue`用于指定主键生成策略,如自增、序列等。 ```java @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long ...

    hibernate第一天笔记

    主键生成策略还有多种方式,如`Assigned`(由外部程序负责),`Increment`(每次自增1,适用于MySQL),`Uuid`(生成UUID字符串),以及`Hilo`(高效ID生成算法)。选择哪种策略取决于具体需求和数据库类型。 ...

    hibernate所有开发包

    1. Entity:通过@Entity注解标记的类表示数据库表,@Id标注主键字段,@GeneratedValue指定自增策略。 2. Table/Column:使用@Table和@Column注解来指定表名和字段名,其他如@Temporal、@Lob等注解用于特殊类型的映射...

Global site tag (gtag.js) - Google Analytics