hibernate的几种主键

hibernate的几种主键

 
public class generator extends hibernateUtil {

	/*
	 * increment机制是int 查找当前id的最大值加1,两次查询效率底点
	 * Hibernate: select max(id) from Person
      Hibernate: insert into Person (name, id) values (?, ?)
	 */
	@Test
	public void testIncrement()
	{
		Session session = factory.openSession();
		Transaction tran = session.beginTransaction();
		Person p = new Person();
		p.setName("yyyyy");
		session.save(p);
		tran.commit();
		session.close();
	}
	
	/*
	 * Hibernate: insert into Person (name, id) values (?, ?)
	 *   1;表必须支持自动增长机制 在Mysql中加入autoincrement
	 *   2;主键的产生是数据库产生的,并不是由hibernate产生的
	 *   3:比increment效率高 
	 */
	@Test
	public void testIdentity()
	{
		Session session = factory.openSession();
		Transaction tran = session.beginTransaction();
		Person p = new Person();
		p.setName("zzzzz");
		session.save(p);
		tran.commit();
		session.close();
	}
	
	/*
	 * assigned产生机制
	 * 由程序员手动添加id,一般测试的时候用,企业里面用的少
	 */
	@Test
	public void testAssigned()
	{
		Session session = factory.openSession();
		Transaction tran = session.beginTransaction();
		Person p = new Person();
		p.setName("zzzzz");
		p.setId("222");
		session.save(p);
		tran.commit();
		session.close();
	}
	
	/*
	 * UUID是hibernate内部生产的
	 * id 必须是字符串类型的 
	 * Hibernate: insert into Person (name, id) values (?, ?)
	 */
	@Test
	public void testUUID()
	{
		Session session = factory.openSession();
		Transaction tran = session.beginTransaction();
		Person p = new Person();
		p.setName("QQQQQ");
		session.save(p);
		tran.commit();
		session.close();
	}
}

 

转载于:https://www.cnblogs.com/linhong/p/4495325.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109454.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html设置ie9兼容性视图,ie9兼容性设置在哪里 IE兼容性视图在哪里设置?「建议收藏」

    html设置ie9兼容性视图,ie9兼容性设置在哪里 IE兼容性视图在哪里设置?「建议收藏」找不到“兼容性视图设置”子菜单如何在360浏览器IE9上设置兼容性视图还有一种方法打开菜单栏,就是鼠标右键点击上方的空白处,选择“菜单栏”,然后菜单栏就显示“工具”。【兼容性视图设置】的窗口,选择“添加此网址”。IE兼容性视图设置在哪兼容性视图怎么设置在浏览器右上角的设置里设置,设置方法如下:方法1首先,打开电脑,找到电脑桌面上的IE浏览器,并点击打开,打开后,进入任一网页,找到页面右上方的…

    2022年9月8日
    1
  • 风控模型基本概念和方法

    风控模型基本概念和方法每每以为攀得众山小,可、每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~———————————————————————————本笔记源于CDA-DSC课程,由常国珍老师主讲。该训练营第一期为风控主题,培训内容十分紧凑,非常好,推荐:CDA数据科学家训练营———————…

    2022年4月29日
    61
  • kettle工具使用简明手册[通俗易懂]

    kettle工具使用简明手册[通俗易懂]kettle工具使用简明手册运行启动脚本spoon.bat快捷方式如果正确启动,则出现的主界面应该是下面这样的。初次进入需右键新建作业新建数据库连接也可以想下面一样,新建数据库连接向导填完参数测试一下连接通过向导分步来我已经建立了转换任务和数据库连接,可以直接应用。 建立多表复制点击开始即可,多表的…

    2022年10月9日
    2
  • java中的compareto方法的详细介绍

    java中的compareto方法的详细介绍java中的compareto方法的详细介绍JavaComparator接口实例讲解(抽象方法、常用静态/默认方法)一.java中的compareto方法1.返回参与比较的前后两个字符串的as

    2022年7月4日
    26
  • win10系统显示打印机未连接到服务器,解决win10提示“Windows无法连接到打印机”的方法…

    win10系统显示打印机未连接到服务器,解决win10提示“Windows无法连接到打印机”的方法…打印机是我们办公室中必备的设备,如今各种打印方式也是层出不穷。最近有用户在使用win10系统进行打印的时候遇到了这样的提示信息:“windows无法连接到打印机”。在更详细的信息提示界面中已经告诉我们是由于本地打印店额后台服务程序没有启用导致的,少数用户在将电脑重新启动之后解决了这个问题,不过大多数的朋友还是得通过手动重启服务才能开始打印。如何才能手动设置这个服务呢,让小编来给大家演示一下吧!方…

    2022年6月11日
    61
  • git的一个分支在本地修改了很多,怎么能直接将本地的直接push到git的另外一个分支呢

    git的一个分支在本地修改了很多,怎么能直接将本地的直接push到git的另外一个分支呢

    2021年7月17日
    68

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号