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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • springboot和springframework以及jdk版本的对应关系

    springboot和springframework以及jdk版本的对应关系Springboot版本 SpringFramework jdk版本 maven版本 1.2.0版本之前 6 3.0 1.2.0 4.1.3+ 6 3.2+ 1.2.1 4.1.3+ 7 3.2+ 1.2.3 4.1.5+ 7 3.2+ 1.3.4 4.2.6+ 7 3.2+ 1.3.6 4.2.7+ 7 3.2+ 1.3.7 4.2.

  • gif录屏与gif图片合成工具「建议收藏」

    gif录屏与gif图片合成工具「建议收藏」现在好多gif图片合成是收费的,而且可能还不太好用,这里分析的gif合成软件是个比较老的软件,但是用着还是挺好用的。还有一个录屏软件,录制保存为gif文件。百度网盘分享,无需积分:链接:https://pan.baidu.com/s/1HukTW6yJvqoUiqbzXuY5bQ提取码:pvc4欢迎关注微信公众号,分享更多实用工具:…

  • python开两个守护线程_hdfs守护线程

    python开两个守护线程_hdfs守护线程**守护线程**是区别于用户线程哈,**用户线程**即我们手动创建的线程,而守护线程是程序运行的时候在后台提供一种**通用服务的线程**。垃圾回收线程就是典型的守护线程。

    2022年10月15日
  • 在线打开pdm文件「建议收藏」

    在线打开pdm文件http://www.dmanywhere.cn/

  • 在pycharm中安装opencv_pycharm opencv

    在pycharm中安装opencv_pycharm opencv打开pycharm下方的terminal终端在路径下直接输入pipinstallopencv-python稍等片刻既安装成功在这里查看项目安装的模块点击左上方文件-设置-项目-Protect-Interpreter看到我们已经安装了opencv-python与numpy模块…

  • QT——开发入门简介

    QT——开发入门简介1、你了解Qt吗?Qt是一种基于C++的跨平台图形用户界面应用程序开发框架。如何跨平台?上到服务器上位机,下到嵌入式GUI,上天入地无所不能。Qt最早是由1991年由QtCompany开发,但是到2008年,QtCompany科技被诺基亚公司收购,是的,就是拥有着我们很多情怀的诺基亚。但在2012年,Qt又被Digia收购。等到了2014年,跨平台集成开发环境QtCreator3.1….

发表回复

您的电子邮箱地址不会被公开。

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