6

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

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

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


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

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

我想做这样的事情:

//艺术家.cfc

component persistent="true" datasource="#session.dsn#"
{ 
property name="artistid" generator="increment"; 
property firstname; 
property lastname; 
property address; 
property city; 
property state; 
}

// 应用程序.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 = {}; 
}
4

2 回答 2

1

随着 ColdFusion 9.0.1 更新引入,您可以将多个数据源与 ORM 一起使用。每个组件一次一个。使用对象中的“数据源”属性来指定应该使用哪个数据库。

<cfcomponent displayname="firstObject" datasource="dbOne">
    <cffunction>
        ...
    </cffunction>

    ...
</cfcomponent>

或者

component datasource = 'dbOne'{
    ...
}
于 2011-11-18T05:30:49.437 回答
1

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

于 2012-01-30T22:32:59.323 回答