2011-12-13 7 views
2

Oracle 11gデータベース(application.cfcのOracle10gダイアレクトを使用)に対して実行されるColdFusionアプリケーションでORMを設定していますが、関係はロードされていません。ここに私が設定したマッピングがあります。これはtag_categoryテーブルへの外部キーを持つタグテーブルです:ORMをColdFusion 9で使用する方法

<cfcomponent output="false" persistent="true" entityname="tag" table="tag"> 
    <cfproperty fieldtype="id" name="id" column="tag_id"> 
    <cfproperty fieldtype="column" name="tag_name" column="tag_name"> 
    <cfproperty fieldtype="column" name="tag_category_id" column="tag_category_id">  
    <cfproperty fieldtype="many-to-one" name="category" cfc="tag_category" fetch="join"> 
</cfcomponent> 

、ここではtag_categoryテーブルです:

<cfcomponent output="false" persistent="true" entityname="tag_category" table="tag_category"> 
    <cfproperty fieldtype="id" name="id" column="tag_category_id"> 
    <cfproperty fieldtype="column" name="tag_category_name" column="tag_category_name"> 
</cfcomponent> 

私はEntityLoad(「タグ」)を実行し、結果をダンプすると、私はタグテーブルの内容を参照してください。ただし、categoryプロパティは空の文字列として表示されます。実行されたSQLを見ると、結合のない単純なクエリしかありません。最後に、savemappingをオンにして生成されたHibernate XMLを見ると、関係は指定されません。どうしたの?これをどのように機能させることができますか?

答えて

2

ちょっと分かりました。私はapplication.cfcにsavemapping = "true"を設定しました。これはHibernate XML設定ファイルのバッチを生成しました。 CFCを更新したとき、ColdFusionは、更新されたCFCではなく、構成ソースとしてHibernate XMLファイルを使用していました。私はormReload()を実行するたびにXMLファイルが再生成されると想定していましたが、表示されません。

0

私はあなたはそれがデフォルトでtrueであるようにと同様に、falseに遅延読み込みを設定する必要があると思う:

<cfproperty fieldtype="many-to-one" name="category" cfc="tag_category" fetch="join" lazy="false"> 

cfdocs、遅延ロードセクションをご覧ください。

関連する問題