我使用的是activejdbc 1.4.9,下面的示例代码运行得很好
Client client = new Client();
client.save();
Assert.assertNotNull(client.getId());
由于我升级到 1.4.12,当 save 插入新记录时,client.getId() 总是返回 null。即 id 没有得到刷新。
有没有人也注意到这一点?我是否必须使用此版本做任何不同的事情来获取新创建的 ID?
我使用的是activejdbc 1.4.9,下面的示例代码运行得很好
Client client = new Client();
client.save();
Assert.assertNotNull(client.getId());
由于我升级到 1.4.12,当 save 插入新记录时,client.getId() 总是返回 null。即 id 没有得到刷新。
有没有人也注意到这一点?我是否必须使用此版本做任何不同的事情来获取新创建的 ID?
我无法用 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