如果可能,如何配置ColdFusion 9的ORM以使用多個DSN?如何爲多個會話範圍DSN配置ColdFusion的ORM?
可以在會話範圍而不是應用程序範圍的上下文中設置數據源嗎?
或者如何在CF9中配置Hibernate使用多個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;
}
//的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 = {};
}
那麼,你是否必須在'Artists.cfc'中保留'datasource =「xyz」'hardcoded(xyz)?或者找到了一種讓它動態的方法? – Sergii
@Sergii由於對多個數據源的限制,我沒有和CF ORM一起工作太多。儘管我希望它不是真的,但我相信答案是數據源必須是硬編碼的。希望有人會糾正我,如果我錯了。我認爲硬編碼是不好的編程實踐,所以我真的希望我錯了。 – Micah