无法在activejdbc 1.4.12中检索db Model getId()

时间:2016-09-26 18:47:38

标签: activejdbc javalite

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

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

自从我升级到1.4.12后,当save插入新记录时,client.getId()始终返回null。即id不会刷新。

有没有人注意到这一点?我是否必须使用此版本执行任何不同的操作才能获得新创建的ID?

1 个答案:

答案 0 :(得分:0)

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

如果你能把一个复制问题的简单例子放在一起,我会看看。

编辑:

现在您在下面的评论中提供了更多信息,问题在于您将ID设置为空字符串:""。由于ID不再是null,因此方法save()使用update而不是insert。然后,更新使用ID的值来更新"现有的"记录,因此没有做任何事情。可以使用ID值进行混淆但不建议。有关详情,请参阅此处:http://javalite.io/surrogate_primary_keys