保存后获取auto_increment键的结果

时间:2018-03-11 12:26:18

标签: activejdbc javalite

我正在尝试使用activejdbc解决客户端断开连接的问题。因此,当没有互联网时,客户端应用程序会对插入和后续更新进行排队。然后,当他们有连接时,这些批次就会通过。

为了支持这一点,客户端使用临时主键,这些主键将在恢复连接并应用批处理时生成auto_increment键的结果。为此,我需要获取在执行save()或create()时生成的密钥。 activejdbc可以使用https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#getGeneratedKeys%28%29吗?

1 个答案:

答案 0 :(得分:1)

保存模型时,其ID实际上是数据库返回的自动生成值:

Person p = new Person(); 
p.set("first_name", "John", "last_name", "Doe");
p.saveIt(); 
System.out.println("ID of this model: " + p.getId()); 

但是,如果您尝试手动设置模型的ID,那么框架会假定您知道自己在做什么,并尝试在插入中使用该ID。

请参阅:http://javalite.io/surrogate_primary_keys