[Seasar-user:19466] S2DaoのSQLファイルの漢字について

Hidemasa Aoki [E-MAIL ADDRESS DELETED]
2010年 3月 9日 (火) 13:25:41 JST


いつもお世話になっております。ITプランナーズの青木と申します。
※すみません。書いている途中で自己解決しましたが、せっかくなので、投稿しま
す。きっと初歩的なので、恥ずかしい限りですが・・・。

Seasar2 2.4.39
Teeda 1.0.13
S2Dao 1.0.49
の構成で開発しております。

S2DaoのSQLファイルへの漢字の入力について、質問です。

添付したファイルのように、漢字を入力すると文字化けしてしまいます。
※SQLファイルのファイル・エンコードはUTF-8です。

そこで、ネットで検索してみたところ、以下がヒットしました。
http://ml.seasar.org/archives/seasar-user/2006-July/004060.html

dao.diconにエンコーディングを指定すればよいと・・・。

しかし、そもそもdao.diconなどというファイルはありません。(きっとクラスパス
上のどこかにあるのでしょうが)

ためしに、以下2つを試しました。
・dao.diconというファイルを追加して、上記URLのような設定をしてみた。
・teedaCustomize.diconに、上記URLのような設定をしてみた。
すると、いずれも以下のようなエラーになりました。

org.seasar.framework.container.IllegalAutoBindingPropertyRuntimeException:
[ESSR0080]クラス(org.seasar.dao.impl.DaoMetaDataFactoryImpl)のプロパティ
(dataSource)の自動設定に失敗しました

下記にあるとおり、わざわざS2Dao.jarを作り直さないとだめなのでしょうか?
http://babukuma.com/2009/07/s2dao-sql.html

どなたか、教えてください・・・。

――――――――――――――――――――――――――――――――――――――
―――

と思ったら、自己解決しました。

・S2Dao.jarからdao.diconを持ってきて、diconファイルなどが置いてあるフォルダ
に張り付ける。
・DaoMetaDataFactoryImplの部分を、URLにあるとおりですが、下記で書き換える。
	<component class="org.seasar.dao.impl.DaoMetaDataFactoryImpl">
		<property name="sqlFileEncoding">"UTF-8"</property>
	</component>

これで、漢字を正しく認識できるようになりました。

そのdao.diconも添付しておきます。

S2Daoのバージョンをあげることもこの先ないでしょうし、こういった対応でよいか
なと思います。

読んでいただいた方、ありがとうございました。

-------------- next part --------------
A non-text attachment was scrubbed...
Name: CardEntryPreprintDao_selectPrePrintDtpByRecordId.sql
Type: application/octet-stream
Size: 674 bytes
Desc: 無し
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20100309/0cae6828/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dao.dicon
Type: application/octet-stream
Size: 1453 bytes
Desc: 無し
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20100309/0cae6828/attachment-0001.obj>


Seasar-user メーリングリストの案内