为什么Hibernate会从持久调用中创建两个查询?

时间:2017-04-06 19:53:36

标签: hibernate jpa

我有以下课程:

 public void testCreatePerson() {
    Person p1 = new Person();
    em.persist(p1);
    p1.setName("John Doe");
}

}

以及以下单元测试方法:

Hibernate: insert into Person (name, id) values (?, ?)
Hibernate: update Person set name=? where id=?

当我执行此测试时,Hibernate会生成两个查询:

em.persist(p1);

我不清楚为什么需要生成两个查询(插入和更新),而不是简单的插入。有没有人有想法?

谢谢,

ps:如果我改变p1.setName("John Doe");end = 120; for (end; end >=0; end--){ printf("\r"); int num = end / 60; int nums = end % 60; printf(" %d : %.2d ", num, nums); sleep(1); if(num == 0 && nums == 0){ printf("\n\nTIME'S UP! GAMEOVER!"); sleep(2); } } 的顺序,那么只生成一个插入,但在我看来它不重要,因为相同的deferred插入可以用于两种情况。

0 个答案:

没有答案