存储过程后Hibernate刷新

时间:2018-03-22 08:36:32

标签: java hibernate stored-procedures

我有以下情况:

  1. 输入@Transactional带注释的类。
  2. 调用在表X中创建行的存储过程
  3. 使用Hibernate,获取一个新创建的行
  4. 第3步自然失败,因为Hibernate尚未刷新,并且不知道表X中新创建的行。
    我知道有session.reresh(Object obj)方法,但由于我没有想要刷新的特定对象,所以我不认为我可以使用该方法。

    是否有解决此问题的想法?

    编辑:即使我提供实体类和表示新创建的行之一的标识符,即使session.get()也不起作用。

1 个答案:

答案 0 :(得分:0)

您可以在新方法中使用REQUIRES_NEW,只需在数据库中插入新实体,然后返回主事务并从数据库中获取实体。 此外,您可以在主事务中使用session.flush(),但它会提交主事务中的所有更改,而不仅仅是插入您的实体。 您必须根据您的方案选择其中一个。