如何为多个会话范围的DSN配置ColdFusion的ORM?

Mic*_*cah 6 coldfusion orm hibernate dsn coldfusion-9

如果可能,如何配置ColdFusion 9的ORM以使用多个DSN?

是否可以在会话范围的上下文中设置数据源而不是应用程序范围?

或者,在CF9中,您如何配置Hibernate以使用多个DSN?


看起来我应该更具体......我正在寻找一种允许根据会话指定DSN的解决方案.

这是场景.我们有一个自定义构建的应用程序,它使用多个DSN,这些DSN是从子域确定的.因此,从http://abc.domain.com访问的人将使用abc DSN,因为访问xyz.domain.com的人将使用xyz DSN.DSN的名称在创建会话时确定,并作为会话变量存储.

我想做这样的事情:

//Artists.cfc

component persistent="true" datasource="#session.dsn#"
{ 
property name="artistid" generator="increment"; 
property firstname; 
property lastname; 
property address; 
property city; 
property state; 
}
Run Code Online (Sandbox Code Playgroud)

// Application.cfc

component output="false" { 
THIS.name = "MultipleDsnORMTest"; 
THIS.applicationTimeout = createTimeSpan(0, 0, 0, 0); 
THIS.clientManagement = false; 
THIS.datasource = ""; // Leaving black ==> "No data source specified."
                      // Setting to cfbookclub ==> "ORM is not 
                      //   configured for the current application."
                      // Setting to cfartgallery works but doesn't 
                      //   demonstrate use multiple DSNs
THIS.loginStorage = "cookie"; 
THIS.sessionManagement = true; 
THIS.sessionTimeout = createTimeSpan(0, 0, 0, 0); 

THIS.ormenabled = true; 
THIS.ormsettings = {}; 
}
Run Code Online (Sandbox Code Playgroud)

Mic*_*cah 1

尽管可以将 ColdFusion 9 配置为在应用程序范围内使用具有 ORM 的多个数据源,但无法将 ColdFusion 9 的 ORM 配置为在会话范围内使用多个 DSN。