1

我使用的是activejdbc 1.4.9,下面的示例代码运行得很好

Client client = new Client();
client.save(); 
Assert.assertNotNull(client.getId());

由于我升级到 1.4.12,当 save 插入新记录时,client.getId() 总是返回 null。即 id 没有得到刷新。

有没有人也注意到这一点?我是否必须使用此版本做任何不同的事情来获取新创建的 ID?

4

1 回答 1

1

我无法用 1.4.12 版确认这一点。例如,我写了这个例子:https ://github.com/javalite/simple-example/blob/new_id 。查看Main.java中的代码。如您所见,代码与您的相同,但在第 21 行,它打印出新 ID 的实际值。

如果您可以整理一个简单的示例来复制您的问题,我会看一下。

编辑:

现在您在下面的评论中提供了更多信息,问题在于您将 ID 设置为空字符串:“”。因为 IDnull不再存在,所以该方法save()使用update而不是insert. 然后更新使用 ID 的值来更新“现有”记录,因此不执行任何操作。混淆 ID 值是可能的,但不建议这样做。请参阅此以获取更多信息:http: //javalite.io/surrogate_primary_keys

于 2016-09-26T20:06:44.267 回答