我用activejdbc 1.4.9和下面的示例代码正在运行就好无法检索数据库模型的getId()了在activejdbc 1.4.12
Client client = new Client();
client.save();
Assert.assertNotNull(client.getId());
自从我升级到1.4.12,客户端.getId()在保存插入新记录时总是返回null。即id没有被刷新。
有没有人注意到这一点呢?为了获得新创建的ID,我需要使用这个版本来做任何不同的事情吗?
准备示例时,我想我注意到可能导致问题的原因。我的代码在保存模型之前设置属性,例如: public setClient(String id,String name) {client} = new Client(); \t client.setId(id); \t client.setName(name); client.save(); \t \t} \t 当这是一个新的客户端时,id参数为空(“”)而不是null。显然在以前的版本中,activejdbc理解为null或“”意味着插入新记录。现在只有当id为null时才会插入。这可以吗? – ccarvalho
同样的逻辑依然如此。请看看它如何决定更新或插入:https://github.com/javalite/activejdbc/blob/365a98e8feb704f65c78f5a7416a02a9592b9a02/activejdbc/src/main/java/org/javalite/activejdbc/Model.java#L2583- L2583 – ipolevoy