3

データベースへのアクセスに特定の NLS_LANGUAGE を使用せざるを得ず、残りのアプリケーションに影響を与えないように user.locale を変更したくありません。このようなことをしても大丈夫ですか、それとも予期しない問題を引き起こす可能性がありますか?

また、セッションの範囲はどのくらいですか? これは、この単一のクエリのみに影響しますか、それとも同じエンティティ マネージャーを使用する各呼び出し、またはアプリケーション全体に影響しますか?

@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();
    }

}
4

1 に答える 1

2

Oracleでのセッションの変更は、その接続での今後のすべての要求に影響します。したがって、必要に応じて接続プールを使用している場合、これは同じ接続で開かれる今後のすべてのセッションに影響します。

于 2013-02-04T19:36:30.890 に答える