JDBCTemplate.queryForList 返回空列表

发布于 2025-01-02 13:46:29 字数 400 浏览 0 评论 0原文

您能帮忙弄清楚为什么下面的Java代码返回

return this.getJdbcTemplate().queryForList(
    "select cn from group g, group_relationship r, " +
    "group_member m where g.name='administratorGroup' and g.group_id=r.group_id " +
    "and r.member_id=m.member_id and m.cn like ?", 
    String.class, 
    new Object[] { cn + "%" });

我使用sqlplus,replace测试的空列表吗? with 'd%',查询返回以d开头的cn列表。

Could you please help to figure out why following Java code returns empty list

return this.getJdbcTemplate().queryForList(
    "select cn from group g, group_relationship r, " +
    "group_member m where g.name='administratorGroup' and g.group_id=r.group_id " +
    "and r.member_id=m.member_id and m.cn like ?", 
    String.class, 
    new Object[] { cn + "%" });

I tested using sqlplus, replace ? with 'd%', The query returns a list of cn start with d.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

萌︼了一个春 2025-01-09 13:46:29

确保您没有为 cn == null 调用此函数,因为在这种情况下 cn + "%" 变为 "null%",这就是它可能返回 0 条记录的原因。

Make sure You're not calling this for cn == null, as in such case cn + "%" becomes "null%" and that's why it probably returns 0 records.

星軌x 2025-01-09 13:46:29

谢谢大家的帮助,问题解决了,我不知道JUnit测试正在使用内存数据库,试图将JUnit测试结果与测试数据库进行比较,在内存数据库中添加条目后,测试返回正确的结果

Thank you for everybody's help, The problem is solved, I was unaware JUnit test is using in-memory db, trying to compare the JUnit test result with test db, after add entries in in-memory db, test return correct result

你怎么敢 2025-01-09 13:46:29
new Object[] { cn + "%" )

除非变量cnd,否则最后是不正确的。

new Object[] { cn + "%" )

is not correct at the end unless the variable cn is d.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文