1

これはおそらくばかげたことですが、私はそれを見つけることができませんでした。私は MyBatis 3.2.2、PostgreSQL 9.2.2、および XML マッピングを使用していますが、注釈については同じ経験がありました。オブジェクトのリストを返す単純な選択をセットアップしました。この構成は期待どおりに機能します。

<select id="getCasesBySite" parameterType="string" resultType="Case">
  select c.* from cases c
</select>

Case オブジェクトのリストを返します。ただし、これは何も返しません。

<select id="getCasesBySite" parameterType="string" resultType="Case">
  select c.* from cases c join siteinfo s on c.siteid = s.id where s.key=#{site}
</select>

私のマッパーインターフェースはこれを持っています:

List<Case> getCasesBySite(@Param("site") String site);

結合を使用するバージョンのデバッグ ロギングは次のとおりです。

... ==>  Preparing: select c.* from cases c join siteinfo s on c.siteid = s.id where s.key=?
... ==> Parameters: sw(String)

上記の SQL をコピーして psql コマンド ラインに貼り付けると (? を 'sw' に置き換えます)、結果のリストが表示されるので、結合クエリ自体は問題ないように見えます。

他にすべきことはありますか?これは私を夢中にさせています。PostgreSQL を使用しているときに大文字と小文字が区別されるという問題があったことを覚えていますが、それが問題である場合、対処方法がわかりません。

より多くの情報を含めることができます。何が関係しているのかわからなかった。

4

1 に答える 1

0

デバッグを重ねた結果、問題はトランザクションとテスト フレームワークに関連しているように見えます。テスト データの更新を処理するために Unitils を使用しています。このプロパティを設定すると、次のことがわかりました。

DatabaseModule.Transactional.value.default=disabled

ファイルではunitils.properties、テストはすべて期待どおりに実行されました。

于 2013-04-27T20:20:08.400 に答える