hibernate spring执行命令存储过程

时间:2012-07-19 07:38:42

标签: java spring hibernate java-stored-procedures

我正在使用带有spring的hibernate(用于事务管理)并且有一个像这样的DAO

@Transactional
class Dao{

public save(Entity e){
//stored an entity
Entity saved = entityManager.merge(e);

//flush the dataset to the db
entityManager.flush();

//updates the saved entity with a stored procedure
entityManger.createNameQuery(STORED_PROCEDURE).setParameter(0, saved.getId()).executeUpdate();
}
}

将在以下具有不同结果的环境中执行:

  • JUnit:这里一切正常。存储实体,存储过程更新已保存的数据集。
  • Glassfish上的EJB:首先执行存储过程,然后执行保存操作(我从hibernate记录sql命令)。似乎没有执行刷新。

结果,存储的实体不包括存储过程的更新。我不知道为什么在Glassfish环境中以不同的顺序执行操作,并且在Junit测试用例中一切正常。

有什么想法吗?

0 个答案:

没有答案