ページの先頭行へ戻る
Interstage Business Application Server オープンJavaフレームワークユーザーズガイド
FUJITSU Software

8.7.1 アプリケーション実行時の異常

■アプリケーションの実行時に「指定されたメソッドは当ドライバではサポートされていません」が出力される

第1章 概要”の“■データベース関連”を参照してください。

Symfowareを使用している場合、"8.5.1 データベース固有の注意点"を参照してください。

■アプリケーションの実行時に「SQLException: Parameter index out of range」が出力される

SQL Mapファイルにおいて、コメント内にインラインパラメータが存在すると発生する場合があります。
コメントからインラインパラメタを削除してください。

問題が発生する例

<insert id=”insertProduct” >
    insert into PRODUCT (PRD_ID, PRD_DESCRIPTION)
    values (#id#, #description#) /* #name# */
</insert>

■キャッシュから予想外の結果が返却される

キャッシュを使用する場合、ステートメントのパラメタが複数ある場合でパラメタにnullが含まれる場合に、キーが重複する場合があります。
パラメタにnullが含まれないようにアプリケーションを見直してください。

■リソースファイルの値が使用できない

リソースファイルの値を${...}で使用する場合に、SQL文中に{...}を含む文を混在すると正常に値が読み込まれません。
SQLを見直してください。

問題が発生する例

<properties resource="org/something/applicationname/backend/dao/db.properties" />
<select id="getSomething" resultClass="Something" resultMap="SomethingResult">
<![CDATA[
        SELECT * FROM ${something.schema_name}.${something.table_name} t
        WHERE {call MyProcedure(1, 0)}
            AND (${maximum_number} > (
                SELECT count(*)
                FROM ${something.schema_name}.${something.table_name} t2
                WHERE t1.xxx = t2.yyy)
            )
    ]]>
</select>

■<dynamic>タグ内でtypeHandlerが有効にならない

<dynamic>タグ内ではtypeHandlerを使用できません。
<dynamic>タグを使用しないようにSQLを見直してください。

■<dynamic>タグ内でprepend属性が有効にならない

タグをネストしている場合にprepend属性が有効にならない場合があります。
ネストしないようにSQLを見直してください。

アプリケーションの実行時に「java.sql.SQLException: カラム名が見つかりません」が出力される

テーブルのカラム名に各国語を利用している場合、ソースファイルのエンコーディングとビルド時の文字コードおよび実行時の文字コードが合っていない場合に発生する場合があります。
ソースファイルのコメント部分などに日本語が含まれる場合は、ソースファイルのエンコーディングをビルド時および実行時の文字コードに合うように変換してください。
上記の対処でも改善しない場合は、SQL Mapファイルに記述するSQLにおいてAS演算子を使用してください。