- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
hibernate_01
SessonFactory与Sesson public class HibernateUtil { private static final SessionFactory sessionFactory; static { try { sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (HibernateException ex) { throw new RuntimeException(ex.getMessage(), ex); } } public static final ThreadLocal session = new ThreadLocal(); public static Session currentSession() throws HibernateException { Session s = (Session) session.get(); if (s == null) { s = sessionFactory.openSession(); session.set(s); } return s; } public static void closeSession() throws HibernateException { Session s = (Session) session.get(); session.set(null); if (s != null) s.close(); } } SessonFactory与Sesson 代码也应修改为: Session session = factory.getCurrentSession(); session.beginTransaction(); User user = new User(); user.setUserId(teacher); user.setPassword(teacher); session.save(user); session.getTransaction().commit(); Key Generator Assign 主键由外部程序负责生成,无需Hibernate参与 Sequence Identity 采用数据库提供的主键生成机制。如 DB2、SQL Server、MySQL中的主键生成机制。 Native 由Hibernate根据底层数据库自行判断采用 identity、hilo、sequence其中一种作为主键生成方式 uuid 根据当前设备IP,时间等信息生成十六进制数值 Key Generator hilo 通过hi/lo 算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态。 seqhilo 与hilo 类似,通过hi/lo 算法实现的主键生成机制,只是主键历史状态保存在Sequence中,适用于支持Sequence的数据库,如Oracle. uuid.hex 由Hibernate基于128 位唯一值产生算法生成16 进制数值(编码后以长度32 的字符串表示)作为主键。 Key Generator uuid.string 与uuid.hex 类似,只是生成的主键未进行编码(长度16)。在某些数据库中可能出现问题(如PostgreSQL) foreign 使用外部表的字段作为主键。 sequence id name=id type=java.lang.Long column name=ID/ generator class=sequence param name=sequenceuse_seq/param /generator /id uuid 当数据从多个分基地集中到某个平台时,为了防止主键重复,可以使用uuid uuid 设置表中的主键为String类型 设置类中的id为String类型 .hbm.xml generator class=uuid“/ save. 复合主键 Composit Primary Key 什么是复合主键 何时使用复合主键 一般情况下使用单个主键 如果是旧系统的维护,可能使用复合主键 复合主键 Hibernate中的复合主键 基于
文档评论(0)