|
into person ( pname, psex , pid) values (?, ?, ?) 说明: 1、先得到主键的最大值 2、在最大值的基础上加1 3、上述的两步过程是由 hibernate内部完成的 */ @Test public void testIncrement(){ Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); Person person = new Person(); //person.setPid(11L);为increament时,自行设置的id没有用, hibernate会帮我们处理id; person.setPname( "云三班长" ); person.setPsex( "不详"); session.save(person); transaction.commit(); session.close(); } /** * * 2.
* * Hibernate: insert into person ( pname, psex ) values (?, ?) 说明: 主键的生成交给数据库来做,数据库必须支持自动增长机制,会出现id不连续的情况,效率比increment要高一些; */ @Test public void testIdentity(){ Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); Person person = new Person(); //person.setPid(11L); person.setPname( "云三班长" ); person.setPsex( "不详"); session.save(person); transaction.commit(); session.close(); } /** * 3.
* 主键的生成是由 hibernate内部完成的 */ @Test public void testUUID(){ Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); Person person = new Person(); person.setPname( "云三班长" ); person.setPsex( "不详"); session.save(person); transaction.commit(); session.close(); } /** * 4.
* 主键的生成由自己指定。 */ @Test public void testAssigned(){ Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); Person person = new Person(); person.setPid(11L); person.setPname( "云三班长" ); person.setPsex( "不详"); session.save(person); transaction.commit(); session.close(); } } |