java.lang.ClassCastException用args调用RedQueryBuilderFactory.create

时间:2013-10-16 21:05:39

标签: javascript redquerybuilder

我的JS文件中的这一行:

RedQueryBuilderFactory.create(config, 
  'SELECT "x0"."title", "x0"."priority" FROM "ticket" "x0" WHERE ("x0"."status" = (?))',
  []
);

使用空数组作为第3个参数。根据文档和我能找到的任何示例代码,该参数应该是一个字符串数组。当我在数组中传递一个字符串时,它失败了:

RedQueryBuilderFactory.create(config, 
  'SELECT "x0"."title", "x0"."priority" FROM "ticket" "x0" WHERE ("x0"."status" = (?))',
  ['in_process']
);

我在Safari控制台中获得了java.lang.ClassCastException。如果相关的话,这是配置的相关部分:

var config = {
    meta : {
        tables : [ {
            "name" : "ticket",
            "label" : "Ticket",
            "columns" : [ {
                "name" : "title",
                "label" : "Title",
                "type" : "STRING",
                "size" : 255
            }, {
                "name" : "priority",
                "label" : "Priority",
                "type" : "REF"
            }  ],
            fks : []
        } ],

        types : [ {
            "name" : "REF",
            "editor" : "SELECT",
            "operators" : [ {
                "name" : "IN",
                "label" : "any of",
                "cardinality" : "MULTI"
            }]
        }  ]
    }
};

1 个答案:

答案 0 :(得分:1)

看起来这是传递参数值的错误。在内部,它期待一个集合,但这不会发生。

最好是在这里提出https://github.com/salk31/RedQueryBuilder错误报告吗?

NB应为“IN”而不是“=”