我被迫使用某个NLS_LANGUAGE来访问数据库,并且不想更改user.locale以避免影响应用程序的其余部分。这样的事情可以做或者是否会引起意想不到的问题?
此外,会话的范围有多大?这会影响这个单一查询,还是每个调用使用相同的entityManager,甚至是整个应用程序?
@Stateless
@Local
public class myDAOImpl implements MyDAO{
@PersistenceContext(unitName = "MyUnit" )
protected EntityManager em;
public List<Object> getSomeData(){
em.createNativeQuery("alter session set nls_language = 'AMERICAN'").executeUpdate();
Query q = em.createNativeQuery("Select * from my_view");
return q.getResultList();
}
}
答案 0 :(得分:2)
oracle上的更改会话将影响该连接上的所有未来请求。因此,如果您正在使用连接池,则会影响在同一连接上打开的所有未来会话。