MyBatis查询在使用连接时不返回值

时间:2013-04-19 03:24:10

标签: postgresql mybatis

这可能是愚蠢的,但我找不到它。我正在使用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>

我的mapper界面有:

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时存在区分大小写的问题,但如果这是问题,我不确定如何解决它。

我可以提供更多信息。我只是不确定什么是相关的。

1 个答案:

答案 0 :(得分:0)

经过大量调试后,问题似乎与事务和我们的测试框架有关。我们使用Unitils处理刷新的测试数据,我们发现在设置此属性之后:

DatabaseModule.Transactional.value.default=disabled

unitils.properties文件中,测试都按预期运行。