java - 如何创建 Activity 对象 'IN'条件查询

标签 java conditional-statements hsqldb active-objects

我当前的查询如下,对于单个用户来说效果很好:

1
ao.find(da.class, Query.select().where("user=?",user)

现在,我想更改此查询以获取多用户数据,如下所示,但它不起作用并给我无效的列名称。

1
ao.find(da.class, Query.select().where("user IN (?)",user)

此外,还尝试应用单引号。即使单个用户输入参数值也不起作用并给出相同的错误。

任何人都可以告诉我哪里出了问题并且必须在这里纠正吗?

错误为,

 Caused by: java.sql.SQLException: Column not found: user in statement [SELECT * FROM       PUBLIC.AO_0371A8_da WHERE "user" IN (?)]
at org.hsqldb.jdbc.Util.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.prep

或when - where("使用了"('?')"并针对单个用户进行了验证

at java.lang.Thread.run(Thread.java:662)
Caused by: java.sql.SQLException: Column not found: user in statement [SELECT * FROM      PUBLIC.AO_0371A8_da WHERE "user" IN ('?')]
at org.hsqldb.jdbc.Util.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.prepareState

谢谢

最佳答案

如果要使用 IN 查询,则需要自己构造占位符列表。以下是摘自:https://ecosystem.atlassian.net/browse/AO-263?focusedCommentId=69495&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-69495的片段:

MyEntity[] findEntities(Iterable<String> matchValues) {
    String placeholderCommaList = Joiner.on(", ").join(Iterables.transform(matchValues, Functions.constant("?")));
    Object[] matchValuesArray = Iterables.toArray(matchValues, Object.class);
    return ao.find(MyEntity.class, "primary_key_field_name", Query.select().where("match_field_name IN (" + placeholderCommaList + ")", matchValuesArray));
}

重要的是,占位符(“?”)的数量与参数的数量相匹配。

希望这有帮助

关于java - 如何创建 Activity 对象 'IN'条件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16581656/

相关文章:

java - 使用具有多个别名的单个证书配置 tomcat SSL

loops - while 循环对汇编代码有 2 个条件

Java 字符串条件中断不起作用

wpf - 条件绑定(bind)属性不起作用?

jakarta-ee - 带有插件和嵌入式数据库的 Java EE 应用程序结构

java - 创建表语法在 hsql 中不起作用

Nimbus 外观中的 Java Swing Accordion

java - SetImageBitMap 在 api 23 android java 中不起作用

java - 此 token 错误后将引发

java - Hsql异常: General Error when calling a stored procedure