- - PR -
DBのCHAR型をEntityBeanで表現するには?
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2003-06-26 11:30
こんにちわ。
今回は以下のような問題にぶちあたっています。 [OS] windwosXP [jdk] jdk1.3.1 [APサーバ] weblogic7.0 [DB] oracle8.1.6 DBにてprimary keyとなるカラムをCHAR型で定義しています。 対応するEntityBeanではStringでフィールドを定義しています。 例えば以下のような場合 CHAR(8):aaaa____ DBには上記のようにスペースで文字数を埋めています。 通常のJDBC経由では、これを検索するにあたっては select * from tablename where columnname = 'aaaa'; で検索できます。 しかしEntityBeanのfindByPrimaryKeyを使用した場合 下記のような問題に当たりました。 ・EntityBean(CMP2.0)が保持しているフィールドがtrimされて いないため、'aaaa'でfindByPrimaryKeyをかけても 検索にヒットしない。 質問としては以下です。 ・EntityBean(CMP2.0)を使用する場合、CHAR型はどのように扱うべきなのでしょうか? これはAPサーバ固有の問題なのでしょうか? # 他APサーバではtrimされた状態で保持できているとか 何か情報があれば教えて頂きたいです。 よろしくお願い致します。 |
|
投稿日時: 2003-07-02 14:48
どうやら色々調べて、聞いてみたりした結果
JDBCドライバの問題っぽいです。 ある社の独自JDBCドライバを使用しているAPサーバでは この問題は発生しないそうです。 そこで切り分けのため、違う質問をさせてください。 # JDBCドライバ自体?それともバージョン?とか。 OracleのJDBCドライバを使用して普通にJDBCプログラミング によりCHAR型の値を取得する際は取得値をtrimする必要があります。 Oracle以外のJDBCドライバの場合はどうなんでしょうか? 他のJDBCドライバでもtrimする必要があるのでしょうか? それとも、ドライバによってはtrimする必要がないとか? ☆質問の種別としては「EJB」ではなくて「JDBC」になりました。 なぜこんなことを聞いているかというと、そもそもOracle のドライバを使用している限りはダメなんじゃないのか? という疑問があるからです。 # Oracle以外のものは使用したことないのでわからないのです。 Oracleがダメっていうなら、アプリケーション側でなんとか 対応するしかないかなと思っています。 よろしくお願いします。 |
1
