我使用的是activejdbc 1.4.9,以下示例代码运行得很好
Client client = new Client();
client.save();
Assert.assertNotNull(client.getId());
自从我升级到1.4.12后,当save插入新记录时,client.getId()始终返回null。即id不会刷新。
有没有人注意到这一点?我是否必须使用此版本执行任何不同的操作才能获得新创建的ID?
答案 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