2011-11-18 9 views
6

可能であれば、複数のDSNを使用するようにColdFusion 9のORMを設定するにはどうすればよいですか?複数のセッションスコープDSNに対してColdFusionのORMを設定するにはどうすればよいですか?

アプリケーションスコープの代わりにセッションスコープのコンテキストでデータソースをセットアップすることは可能ですか?

また、CF9では、複数のDSNを使用するためにHibernateを設定する方法はありますか?


私はより具体的にする必要がありように私はセッションに基づいてDSNを指定することができます解決策を探しています ...見えます。

ここにシナリオがあります。サブドメインから決定された複数のDSNを使用する単一のカスタム構築アプリケーションがあります。したがって、http://abc.domain.comからアクセスするユーザーは、xyz.domain.comにアクセスするユーザーがxyz DSNを使用する場合、abc DSNを使用します。 DSNの名前は、セッションの作成時に決定され、セッション変数として保存されます。 ColdFusionの9.0.1アップデートで導入された

//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 = {}; 
} 

答えて

1

それがアプリケーションスコープにORMを有する複数のデータソースを使用するようにColdFusion 9を構成することが可能であるが、内の複数のDSNで動作するには、ColdFusion 9のORMを設定することは不可能ですセッションスコープ

+0

'' Artists.cfc'に 'datasource =" xyz "' hardcoded(xyz)を保存しなければなりませんでしたか?ダイナミックにする方法を見つけましたか? – Sergii

+0

@Sergii複数のデータソースに制限があるため、私はCF ORMであまり働いていません。私がそれが真実でないことを望む限り、答えは、データソースをハードコードする必要があるということです。私が間違っていれば、誰かが私を修正してくれることを願っ私はハードコーディングを悪いプログラミング慣行とみなしていたので、間違っていると本当に思います。 – Micah

1

:私はこのような何かをしたいと思います

multiple data sources with ORMを使用できます。コンポーネントごとに1つずつ。オブジェクト内の "datasource"属性を使用して、使用するデータベースを指定します。

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

    ... 
</cfcomponent> 

又は

component datasource = 'dbOne'{ 
    ... 
} 
+0

Application.cfcレベルでデフォルトを定義することはできませんでした。つまり、他の場所からデータを参照する場合は、データソース属性を追加するだけです。 –

+0

オブジェクト/コンポーネントのdatasource属性を省略すると、application.cfcで定義されているデフォルトのデータソースが使用されます –

+0

Application.cfcレベルのデータソースをどのように設定しますか? – Micah

関連する問題