小编gus*_*afc的帖子

JDO异常:"查询需要1个参数,但已提供2个值."

尽管我的JDO查询包含两个 declareParameters语句,但下面的代码会产生一个错误,声称只接受一个参数:

查询需要1个参数,但已提供2个值.

这两个参数是amountPtaxP:

 javax.jdo.Query query= pm.newQuery(Main.class); 
 query.setFilter("amount == amountP && tax < taxP"); 
 query.declareParameters("int amountP"); 
 query.declareParameters("int taxP"); 
 List<Main> results = (List<Main>)query.execute (amountP, taxP); 
Run Code Online (Sandbox Code Playgroud)

但是,通过以下更改,它可以正常工作.

 javax.jdo.Query query= pm.newQuery(Main.class); 
 query.setFilter("amount == amountP && tax < taxP"); 
 query.declareParameters("int amountP, int taxP"); 
 List<Main> results = (List<Main>)query.execute (amountP, taxP); 
Run Code Online (Sandbox Code Playgroud)

我的问题是:原始语法出了什么问题?

更新:此问题已被其他人报告,但没有解释.

java parameters google-app-engine jdo

5
推荐指数
1
解决办法
3465
查看次数

如何在不破坏Maven发布插件的情况下传递javac多个命令行参数,其中一些包括冒号?

当我忘记在Serializable类中声明serialVersionUID时,我想让我的Maven构建失败.有javac,这很容易:

$ javac -Xlint:serial -Werror Source.java
Run Code Online (Sandbox Code Playgroud)

直接将其翻译为Maven不起作用:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <compilerArgument>-Xlint:serial -Werror</compilerArgument>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

compilerArgument被引用,因此javac仅接收一个参数,包含-Xlint:serial -Werror代替,-Xlint:serial-Werror作为单独的参数.所以你阅读了文档,并找到compilerArguments:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <compilerArguments>
                    <Xlint:serial />
                    <Werror />
                </compilerArguments>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

这看起来很奇怪 - 冒号serialXlint命名空间中创建了元素,它没有在任何地方声明 - 但是它有效...直到你想要发布一个版本:

$ mvn release:prepare

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.3.2:prepare (default-cli) on project my-project: Error reading POM: Error on line 58: The prefix "Xlint" for …

java javac maven maven-release-plugin maven-compiler-plugin

5
推荐指数
2
解决办法
5587
查看次数

使用regexp进行编号分组

是否有可能做数分组(例如,将数字转换1000为字符串"1 000")使用一个通仅正则表达式?(我知道正则表达式和语言设施之间的界限在某些系统中有点模糊 - 在回复之前倾听你的良心.)

我之所以问的原因:另一个开发人员最近问我如何在JavaScript中进行数字分组,并使用regexp向我展示了一个稍微不正确的JavaScript函数.我给了他一个更好的选择,但他的正则表达式唠叨我,因为这种重写肯定是常规语法应该能做的事情,但我真的无法弄清楚如何为它编写正则表达式.

这是我第一次天真的尝试,我知道这是不正确的:

function group(n) { return n.toString().replace(/(\d{3})/g, "$1 "); }
Run Code Online (Sandbox Code Playgroud)

这种方法有两个缺陷; group(1000)收益率"100 0"group(100)收益率"100 "(尾随空间).你可以这样解决它:

String.prototype.reverse = function () { 
    var a = []; 
    for (var i = this.length; i >= 0; --i) a.push(this[i]); 
    return a.join("");
}; 
function group(n) { 
    return n.toString().reverse().replace(/(\d{3})/g, "$1 ").
        trimRight().reverse(); 
}
Run Code Online (Sandbox Code Playgroud)

但这不是一个,不是两个,不是三个,而是四个通道(两个反转,一个替换,和trimRight)!然后我冒险进入后面的土地,并提出:

function group(n) { return n.toString().replace(/(\d{3}(?!\d))/g, " $1");
Run Code Online (Sandbox Code Playgroud)

...根本不起作用(编辑 - 可能是因为我混淆了后视和负面前瞻...... …

regex language-agnostic

3
推荐指数
2
解决办法
1020
查看次数

Oracle 11g是否自动索引常用于全表扫描的字段?

我有一个使用Oracle 11g数据库的应用程序.我有一个相当大的表(~50k行),我查询它:

SELECT omg, ponies FROM table WHERE x = 4
Run Code Online (Sandbox Code Playgroud)

x我发现,Field 没有编入索引.这个查询发生了很多,但问题是表现并不算太差.添加索引x确实使查询大约快两倍,这远远低于我的预期.比方说,MySQL,它至少会使查询速度提高十倍.(编辑:我在MySQL上测试了这个,并且看到了巨大的差异.)

我怀疑Oracle在检测到我经常查询非索引字段时会添加某种自动索引.我对么?在文档中我甚至都没有发现任何暗示.

oracle indexing

1
推荐指数
1
解决办法
3422
查看次数

C API的命名约定

我们正在研究用C编写的游戏引擎,目前我们正在使用以下命名约定.

ABClass object;
ABClassMethod(object, args)
Run Code Online (Sandbox Code Playgroud)

AB是我们的前缀.

我们的API,即使在对象上工作,也没有继承,多态或任何东西.我们所拥有的只是处理它们的数据类型和方法.

我们的常量命名相似:AB_ConstantName预处理器宏命名为AB_API_BEGIN.我们不使用像宏这样的函数.

我想知道这是如何适合作为C API.此外,您可能会注意到整个API都是包装器lua,您可以使用C或来自或lua.大多数时候发动机将从lua使用.

c naming-conventions

0
推荐指数
1
解决办法
2004
查看次数