我正在使用带有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();
}
}
将在以下具有不同结果的环境中执行:
结果,存储的实体不包括存储过程的更新。我不知道为什么在Glassfish环境中以不同的顺序执行操作,并且在Junit测试用例中一切正常。
有什么想法吗?