这可能是愚蠢的,但我一直无法找到它。我正在使用 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 时存在区分大小写的问题,但如果这是问题,我不知道如何解决它。
我可以包含更多信息。我只是不确定什么是相关的。