【发布时间】:2017-02-02 19:45:43
【问题描述】:
我是 iBatis 的新手,我正在尝试实现一个非常简单的子查询,但它似乎不起作用。这是我的查询:
<select id="GetData" parameterType="java.util.Map"
resultMap="DataMap">
SELECT * FROM schema.table1 WHERE id = (SELECT someid FROM schema.table2 WHERE id=#{parameterid});
</select>
我的 iBatis DAO 方法如下所示:
public Data get(Long parameterid)
{
Map<String, Object> params = new HashMap<String, Object>();
params.put("parameterid", parameterid);
return getSqlSession().selectOne("GetData", params);
}
感谢您的任何建议!
【问题讨论】:
-
你遇到了什么错误?
-
“但它似乎不起作用”是没有意义的。有错误信息吗?向我们展示包括堆栈跟踪在内的整个错误消息。它是什么样的数据库?您是否直接在数据库中尝试了相同的查询?
-
使用 postgres 9.5 数据库,我没有看到任何错误...我正在使用调试器并看到它在我的查询点失败。
-
(使用 Oracle) 有时,我们的一位开发人员会将 Oracle SQL 开发人员的内容粘贴到 eclipse 中(例如),并附带一个尾随分号。通过 JDBC 运行时,您将收到 SQL 语法错误。尝试从 SQL 中删除分号。另外,请参阅:stackoverflow.com/questions/11855799/…
标签: java sql subquery dao ibatis