一、数据库对象匹配
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();//创建新的 Session
session.beginTransaction();// 开启事物
Student s1 = (Student)session.get(Student.class,Long.valueOf(1));
Student s2 = (Student)session.get(Student.class,Long.valueOf(3));
Student s3 = (Student)session.get(Student.class,Long.valueOf(1));
System.out.println(s1==s2);
System.out.println(s1==s3);
session.getTransaction().commit();// 提交事务
session.close();//关闭session
二、数据库生成策略标识
<generator class="native"></generator>
其中的CLASS可以更改:
主键的分类 业务主键 VS 代理主键 代理主键是不具有业务性的;
1,increment 由 Hibernate 自动以递增的方式生成标识符,适用代理主键;
2,identity 由底层数据库生成标识符;适用代理主键;
3,sequcence 由 Hibernate 根据底层数据库的序列来生成标识符;适用代理主键;
4,hilo Hibernate 根据 high/low 算法来生成标识符。适用代理主键
5,native 根据底层数据库对自动生成标识符的支持能力, 来选择 identity,sequence 或 hilo;适用代理主键。