save和perist方法如何在休眠

时间:2015-07-23 15:53:03

标签: java eclipse hibernate

您好我正在尝试了解hibernate的save和persist方法的行为。为此,我编写了一个非常简单的方法,并尝试使用事务和out事务运行它,但它实际上让我很困惑。

    @Test
    public void saveOrPersist() {
        Person person = new Person();
        person.setFirstName("naveen");
        person.setLastName("kumar");
// 1        session.beginTransaction();
         session.persist(person);
// 2    session.save(person);
// 3         session.flush();
// 4    session.getTransaction().commit();
    }

用这种方法我做了以下事情。 取消注释第1,2和4行并注释第2行上方的行以测试save方法的行为。它工作正常,并在eclipse控制台上给我以下内容。

Hibernate: select nextval ('hibernate_sequence')
Hibernate: insert into BaseEntity (createDateTime, description, updateDateTime, firstName, lastName, discriminator, id) values (?, ?, ?, ?, ?, 'p', ?)

还检查数据库以及另外一个插入到人员表中的条目。 第二,我评论第1行和第4行再次使用事务运行相同的测试用例。然后它给我下面的输出

Hibernate: select nextval ('hibernate_sequence')

这次没有进入人员表。

然后我用persist方法做了同样的事情。使用事务和没有事务运行persist方法两次,我在eclipse控制台上得到了相同的结果。

现在我的问题是除了返回类型之外,persist和save之间还有一个区别。那就是持久化方法不能解决交易方面的问题。我试图学习这个东西。有些人可以说出这个概念有什么问题,或者我错误地理解了这个概念。如果它然后用更多的描述更正我的代码。提前谢谢。

0 个答案:

没有答案