<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>Transfer ATOM - 気楽に行こう</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/" />
   <link rel="self" type="application/atom+xml" href="http://www.schwarzmond.info/blog/cat9/categoryatom.xml" />
   <id>tag:www.schwarzmond.info,2009:/blog//1</id>
   <updated>2008-11-10T02:09:01Z</updated>
   <subtitle>いろんなネタを書くかもなので、興味のあるネタ以外がうざい人は、カテゴリリンクの RSS を見てください。</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.33-ja</generator>

<entry>
   <title>Transfer で発行されるクエリ</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/11/transfer_7.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.106</id>
   
   <published>2008-11-10T02:04:44Z</published>
   <updated>2008-11-10T02:09:01Z</updated>
   
   <summary>Transfer では、データベースクエリを発行する場所は、transfer.c...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p>Transfer では、データベースクエリを発行する場所は、transfer.com.sql.QueryExecution の executeQuery() に集約されているので、どんなクエリが発行されているのかを把握することが簡単である。</p>

<p>実際に、80行目に以下のコードを入れてみた。</p>]]>
            <a href="http://www.schwarzmond.info/blog/2008/11/transfer_7.html">続く...</a>
      
   </content>
</entry>
<entry>
   <title>CF Frameworks Explorer ってなんぞ？</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/11/cf_frameworks_explorer.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.105</id>
   
   <published>2008-11-05T02:43:35Z</published>
   <updated>2008-11-05T02:57:21Z</updated>
   
   <summary>CFEclipse を導入する際に、ずっと気になっていたけど、 こんな風だし、 ...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ColdSpring" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Model-Glue" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="フレームワーク" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p>CFEclipse を導入する際に、ずっと気になっていたけど、</p>

<p><img alt="cfframeworks01.gif" src="http://www.schwarzmond.info/blog/img_coldfusion/cfframeworks01.gif" width="261" height="117" style="border: 1px solid gray;" /></p>

<p>こんな風だし、</p>

<p><img alt="cfframeworks02.gif" src="http://www.schwarzmond.info/blog/img_coldfusion/cfframeworks02.gif" width="297" height="62" style="border: 1px solid gray;" /></p>

<p>右クリックで、“構成”を選択すると、</p>

<p><img alt="cfframeworks03.gif" src="http://www.schwarzmond.info/blog/img_coldfusion/cfframeworks03.gif" width="441" height="142" /></p>

<p>こんな警告出るし、</p>

<p><a href="http://www.schwarzmond.info/blog/img_coldfusion/cfframeworks04.html" onclick="window.open('http://www.schwarzmond.info/blog/img_coldfusion/cfframeworks04.html','popup','width=548,height=317,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.schwarzmond.info/blog/img_coldfusion/cfframeworks04-thumb.gif" width="300" height="173" alt="" /></a></p>

<p>こんなウィンドウが表示されるだけで、なんなんだよ、これ。って感じで、放置していた CF Frameworks Explorer 。</p>

<p>でも、<a href="http://cfeclipse.org/cfeclipsetv.cfm">ここ</a> の「08 CF Frameworks Explorer Introduction」を見て、一気に解決。</p>]]>
            <a href="http://www.schwarzmond.info/blog/2008/11/cf_frameworks_explorer.html">続く...</a>
      
   </content>
</entry>
<entry>
   <title>Railo 浮上</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/09/railo_1.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.93</id>
   
   <published>2008-09-22T04:20:19Z</published>
   <updated>2008-09-22T04:24:53Z</updated>
   
   <summary>以前のエントリーで、Railo に見事撃沈された我がサンプルアプリケーション。 ...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ColdSpring" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Model-Glue" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p><a href="http://www.schwarzmond.info/blog/2008/06/railo.html">以前のエントリー</a>で、Railo に見事撃沈された我がサンプルアプリケーション。<br />
その Railo が正式リリースされたと聞いたので、もう一度、動作確認してみた。<br />
</p>]]>
            <a href="http://www.schwarzmond.info/blog/2008/09/railo_1.html">続く...</a>
      
   </content>
</entry>
<entry>
   <title>Transfer でのエラー発生時の愚痴</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/09/transfer_6.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.92</id>
   
   <published>2008-09-11T06:20:42Z</published>
   <updated>2008-10-10T02:01:13Z</updated>
   
   <summary>Transfer を使っていると、何か問題があったときに、どこがいけないのか、本...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Model-Glue" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p>Transfer を使っていると、何か問題があったときに、どこがいけないのか、本当にわかりにくい。<br />
たいていの場合は、Transfer.xml の書き方が間違っている場合が多いのだけど、実際にどんなクエリを発行しようとしてエラーになったのか、どんなクエリを発行したのか。<br />
</p>]]>
            <a href="http://www.schwarzmond.info/blog/2008/09/transfer_6.html">続く...</a>
      
   </content>
</entry>
<entry>
   <title>Transfer のドキュメント生成ツール</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/06/transfer_5.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.82</id>
   
   <published>2008-06-09T01:51:44Z</published>
   <updated>2008-06-09T02:10:17Z</updated>
   
   <summary>以前のエントリで、Generated Method を一覧してくれるツールをアッ...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p><a href="http://www.schwarzmond.info/blog/2008/06/post_42.html">以前のエントリ</a>で、Generated Method を一覧してくれるツールをアップしたけど、やっぱり、公式なツールとしてすでに存在していたようだ。<br />
<a href="http://www.schwarzmond.info/blog/img_coldfusion/documentwindow1.html" onclick="window.open('http://www.schwarzmond.info/blog/img_coldfusion/documentwindow1.html','popup','width=704,height=748,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.schwarzmond.info/blog/img_coldfusion/documentwindow-thumb.gif" width="211" height="224" alt="" /></a></p>

<p>こんな感じで関数を一覧してくれるので、紙のドキュメントにすることも可能だ。</p>]]>
            <a href="http://www.schwarzmond.info/blog/2008/06/transfer_5.html">続く...</a>
      
   </content>
</entry>
<entry>
   <title>ColdSpring の Remote Facades</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/06/coldspring_remote_facades.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.81</id>
   
   <published>2008-06-06T00:33:30Z</published>
   <updated>2008-06-06T00:37:03Z</updated>
   
   <summary>ColdSpring のドキュメントに Remote Facades という項目...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ColdSpring" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Model-Glue" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p>ColdSpring のドキュメントに Remote Facades という項目がある。<br />
これも確か、デザインパターンで見たような気がする。<br />
<a href="http://capsctrl.que.jp/kdmsnr/wiki/PofEAA/?RemoteFacade">便利なサイト</a>があったので、参考にさせてもらった。ありがたい。<br />
なるほどなるほど。<br />
実際の実装には<a href="http://andyjarrett.co.uk/andy/blog/index.cfm/2008/5/19/ColdSpring-and-Remote-Facades">ここ</a>を参考にさせてもらった。</p>

<p>で、とりあえず、http://localhost/shopping/model/ItemArrayBean.cfc?method=getItemArray にアクセス。</p>

<p><em>コンポーネント [[リポジトリ]]\shopping\www\model\ItemArrayBean.cfc のメソッド 'getItemArray' はリモートでアクセスできません。  </em></p>

<p>cffunction の access 属性が public なのだから当然。</p>]]>
            <a href="http://www.schwarzmond.info/blog/2008/06/coldspring_remote_facades.html">続く...</a>
      
   </content>
</entry>
<entry>
   <title>ManyToMany</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/06/manytomany.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.80</id>
   
   <published>2008-06-05T00:43:37Z</published>
   <updated>2008-06-05T00:47:07Z</updated>
   
   <summary>Transfer のリレーション設定の一つである manytomany って、な...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p>Transfer のリレーション設定の一つである manytomany って、なんとなく見過ごしてきたけど、実際のところ、これって何よ？というわけで、調べてみた。<br />
多対多ということなんだろうけど、浅学なのか、こういうリレーションてのは、あまり考えたことがなかった。</p>

<p>例えば、ユーザーというデータがあって、そのユーザーが購入した商品は、複数ある。<br />
逆に、ある商品を購入したユーザーは、複数人いるというのが、多対多ということらしいけど、どうやって設定するのやら。<br />
以前、Transfer のサンプルの tBlog の Transfer.xml で manytomany を見かけたけことを思い出して、参考にしてみた。<br />
インターネット上の情報から考えても、どうやら、リレーション用のテーブルを設けるらしい。<br />
</p>]]>
            <a href="http://www.schwarzmond.info/blog/2008/06/manytomany.html">続く...</a>
      
   </content>
</entry>
<entry>
   <title>ちょっと楽になるかな？ツール</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/06/post_42.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.79</id>
   
   <published>2008-06-04T00:50:09Z</published>
   <updated>2008-06-04T02:11:07Z</updated>
   
   <summary>もともと、無精なものだから、どうにも Transfer の Generated ...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ColdSpring" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Model-Glue" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p>もともと、無精なものだから、どうにも Transfer の Generated Methods の入力が煩わしい。<br />
多少でも楽になればと思い、ちょっとツールを作ってみた。<br />
<a href="http://www.schwarzmond.info/blog/img_coldfusion/developing.zip">これ</a>を使えば、<br />
<img alt="developing_04.gif" src="http://www.schwarzmond.info/blog/img_coldfusion/developing_04.gif" width="238" height="251" style="border:1px solid gray;" /><br />
こういう風に、一覧で利用できる関数を表示してくれる。</p>]]>
            <a href="http://www.schwarzmond.info/blog/2008/06/post_42.html">続く...</a>
      
   </content>
</entry>
<entry>
   <title>Observer を Inject する</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/06/observer_inject.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.78</id>
   
   <published>2008-06-03T00:40:13Z</published>
   <updated>2008-06-03T00:44:57Z</updated>
   
   <summary>Google Groups に参考になるスレッドが上がってた。 addXXXOb...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ColdSpring" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Model-Glue" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p>Google Groups に参考になるスレッドが上がってた。<br />
<a href="http://groups.google.co.jp/group/transfer-dev/browse_thread/thread/7ae52b140ee1a7bd#">addXXXObserver(component), where to call? is singleton required?</a><br />
そこからのリンク<a href="http://www.silverwareconsulting.com/index.cfm/2008/5/21/My-Take-on-Transfer-ORM-Event-Model-Examples--BeforeCreate-Example">My Take on Transfer ORM Event Model - BeforeCreate Example</a> 。<br />
Observer の登録の仕方だ。これを参考にすると、すっきりした。<br />
</p>]]>
            <a href="http://www.schwarzmond.info/blog/2008/06/observer_inject.html">続く...</a>
      
   </content>
</entry>
<entry>
   <title>Transfer Event Model</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/06/transfer_event_model.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.77</id>
   
   <published>2008-06-02T00:23:44Z</published>
   <updated>2008-06-02T00:28:18Z</updated>
   
   <summary>Transfer Event Model とは、なんだろうか。 データベースのテ...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p>Transfer Event Model とは、なんだろうか。<br />
データベースのテーブルをマッピングした Transfer オブジェクト経由でデータベース上のデータに対してなんらかの変更が加えられた（もしくは、変更が加えられる）ことを監視して、処理を発生させることができるということのようだ。<br />
</p>]]>
            <a href="http://www.schwarzmond.info/blog/2008/06/transfer_event_model.html">続く...</a>
      
   </content>
</entry>
<entry>
   <title>Transfer の clone 機能</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/05/transfer_clone.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.76</id>
   
   <published>2008-05-29T00:47:51Z</published>
   <updated>2008-05-29T00:50:10Z</updated>
   
   <summary>Transfer は、clone 関数が用意されている。文字通り、オブジェクトの...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p>Transfer は、clone 関数が用意されている。文字通り、オブジェクトの複製ができる。<br />
get で取得した Transfer のオブジェクトを clone するだけだ。<br />
<quote><br />
　user = getTransfer().get("user.User", 1);<br />
　cloneUser = user.clone();<br />
</quote></p>

<p>どんなときに使うのだろうか。<br />
</p>]]>
            <a href="http://www.schwarzmond.info/blog/2008/05/transfer_clone.html">続く...</a>
      
   </content>
</entry>
<entry>
   <title>TransferDecorator</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/05/transferdecorator.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.74</id>
   
   <published>2008-05-28T01:10:54Z</published>
   <updated>2008-05-28T01:16:26Z</updated>
   
   <summary>Transfer の機能にある、decorator とはなんだろうか。 どこかで...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p>Transfer の機能にある、decorator とはなんだろうか。<br />
どこかで聞いたような気がしたんだけど、オブジェクト指向に出てくるデコレータパターンかな。<br />
オブジェクトの振る舞いを自由に変更できるということか。</p>

<p>例のごとく、<a href="http://docs.transfer-orm.com/wiki/Writing_Decorators.cfm">ドキュメント</a>を読んでも、さっぱりわからない。<br />
悪戦苦闘の結果に導き出した答えが、「Transfer のオブジェクトの振る舞いを変更するための仕組み」。<br />
Transfer のオブジェクトは、Transfer.xml の object タグの情報を元に、自動で生成される。Transfer.xml で設定できること以外は、そのオブジェクトに対しては、ブラックボックス状態だ。<br />
そこで、この transfer.com.TransferDecorator の出番となる。<br />
</p>]]>
            <a href="http://www.schwarzmond.info/blog/2008/05/transferdecorator.html">続く...</a>
      
   </content>
</entry>
<entry>
   <title>Scaffold のカスタマイズ</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/05/scaffold_1.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.70</id>
   
   <published>2008-05-23T01:18:22Z</published>
   <updated>2008-05-23T01:22:24Z</updated>
   
   <summary>Scaffold には、用意されたデザインではなく、自由にデザインを変更できる機...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Model-Glue" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p>Scaffold には、用意されたデザインではなく、自由にデザインを変更できる機能がある。<br />
これを使えば、もしかすると、本番システムにおいても利用できる機能なのかもしれない。<br />
</p>]]>
            <a href="http://www.schwarzmond.info/blog/2008/05/scaffold_1.html">続く...</a>
      
   </content>
</entry>
<entry>
   <title>Transfer のトランザクション処理</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/05/transfer_4.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.59</id>
   
   <published>2008-05-13T00:54:03Z</published>
   <updated>2008-10-10T02:05:27Z</updated>
   
   <summary>サンプルアプリケーションは、データベースのトランザクション処理ができていない。 ...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="ColdSpring" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Model-Glue" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p>サンプルアプリケーションは、データベースのトランザクション処理ができていない。<br />
こんなアプリケーションが許されるわけはないので、トランザクションを実装しなければならない。<br />
トランザクションはどのように実装するのか。</p>

<p>やり方としては、コンポーネント内の指定した関数を丸ごとトランザクション処理するというイメージになる。<br />
shopping.model.CartProcess の transfer.TransferFactory を AutoWire したタイミングで、transfer.TransferFactory から transfer.com.sql.transaction.Transaction を取得する。<br />
<quote><br />
&lt;cffunction name="setOrmService" access="public" returntype="void" output="false"&gt;<br />
　&lt;cfargument name="ormService" type="transfer.TransferFactory" required="true"&gt;<br />
　&lt;cfset variables.transfer = arguments.ormService.getTransfer() /&gt;<br />
　&lt;cfset variables.transaction = arguments.ormService.getTransaction() /&gt;<br />
&lt;/cffunction&gt;<br />
</quote></p>

<p>その Transaction を利用して、<br />
<quote><br />
　&lt;cfset transaction.execute(component, methodName, [arguments]) /&gt;<br />
</quote><br />
と、直接的に関数をトランザクション指定で起動することもできる。<br />
直接指定の場合は、その関数を利用するときに、上記の記述で利用することになる。</p>

<p>また、ＡＯＰのように記述して、関数を指定することで、指定した関数が丸ごとトランザクション処理されるようだ。<br />
この記述の場合は、事前に行っておくことで、その関数を通常のように利用した場合でも、トランザクション処理されることになる。<br />
<quote><br />
&lt;cffunction name="setOrmService" access="public" returntype="void" output="false"&gt;<br />
　&lt;cfargument name="ormService" type="transfer.TransferFactory" required="true"&gt;<br />
　&lt;cfset variables.transfer = arguments.ormService.getTransfer() /&gt;<br />
　&lt;cfset variables.transaction = arguments.ormService.getTransaction() /&gt;<br />
　&lt;cfset variables.transaction.advise(this, insertItem) /&gt;<br />
&lt;/cffunction&gt;<br />
</quote><br />
さらに、<br />
<quote><br />
　&lt;cfset arguments.transaction.advise(this, "^save") /&gt;<br />
</quote><br />
と、正規表現で一括してトランザクション処理指定もできる。<br />
トランザクションで処理したい関数を save で始まる関数名にしておけば、簡単に一括指定できる。<br />
</p>]]>
      
   </content>
</entry>
<entry>
   <title>なんとか</title>
   <link rel="alternate" type="text/html" href="http://www.schwarzmond.info/blog/2008/05/post_40.html" />
   <id>tag:www.schwarzmond.info,2008:/blog//1.58</id>
   
   <published>2008-05-12T00:45:49Z</published>
   <updated>2008-10-10T02:05:42Z</updated>
   
   <summary>なんとか、Transfer の迷宮を抜け出せつつある。もちろん、Transfer...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="ColdFusion" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="Transfer" scheme="http://www.sixapart.com/ns/types#category" />
         <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.schwarzmond.info/blog/">
      <![CDATA[<p>なんとか、Transfer の迷宮を抜け出せつつある。もちろん、Transfer のほとんどの機能を把握したという意味ではない。</p>

<p>テーブルを下図のように変更。<br />
<img alt="table_02.gif" src="http://www.schwarzmond.info/blog/table_02.gif" width="548" height="103" /><br />
<quote><br />
CREATE TABLE public.CARTHEADER (<br />
       sessionid VARCHAR(32) NOT NULL<br />
     , createdate TIMESTAMP NOT NULL<br />
     , updatedate TIMESTAMP NOT NULL<br />
     , PRIMARY KEY (sessionid)<br />
);</p>

<p>CREATE TABLE public.CARTDATA (<br />
       lnksessionid VARCHAR(32) NOT NULL<br />
     , lnkitemid INT NOT NULL<br />
     , categoryname TEXT NOT NULL<br />
     , itemname TEXT NOT NULL<br />
     , price INT NOT NULL<br />
     , quantity INT NOT NULL<br />
     , PRIMARY KEY (lnksessionid, lnkitemid)<br />
);<br />
</quote><br />
ついでに、カートデータとして、各商品の個数を登録できるようにした。</p>

<p>主キーに、固定長の文字列を設定して、バイト長が足りない文字列を入れることは、御法度らしい。<br />
他にも、実際にやってみるとわかる Transfer のクセというか作法もちょこっとずつわかってきた。</p>

<p><a href="http://www.schwarzmond.info/blog/shopping-transfer_20080509.zip">サンプルアプリケーション</a></p>

<p><a href="http://coldfusion-style.jp/">ColdFusion-Style</a> フォーラムで話題があがっていたけど、アプリケーションフレームワークは色々あるが、ＤＩコンポーネントは ColdSpring 、Ｏ－Ｒマッパーは、Transfer を選択する人が多いのだろうか。<br />
アプリケーションフレームワークは ColdBox が流行なのかな。なにやら、Eclipse のプラグインがあるみたいだし、ちょっと読んでみる必要があるのかな。</p>

<p>目下の悩み事は、ＣＦタグのコードと、cfscriptのコードが入り交じっていることだ。<br />
全部ＣＦタグにしたほうが、統一感があっていいのだけど、各種ドキュメントのサンプルコードが cfscript で書いてあったり、ちょっとだけコーディング量が少なかったりと、cfscript で書いちゃう場所もある。<br />
どちらかに全て統一となると、cfscript に統一ということはできないようだから、やっぱり、ＣＦタグの方がいいのかなぁ。<br />
</p>]]>
      
   </content>
</entry>

</feed>
