我想为来自 Eclipselink 的每个会话设置一个数据库会话变量。我要执行的 SQL 类似于:
begin DBMS_SESSION.SET_IDENTIFIER('MyApplicationName'); end;
如果我尝试创建一个将执行命令的 SessionEvent 侦听器,我似乎陷入了无限递归。
myServer.getEventManager().addListener(new SessionEventAdapter() {
public void postConnect(SessionEvent evt) {
evt.getSession().executeNonSelectingCall(new SQLCall("begin DBMS_SESSION.SET_IDENTIFIER('MyApplicationName'); end;"));
}
});
我是在使用事件侦听器以错误的方式解决这个问题,还是需要以特殊方式执行 SQL 命令?