我正在尝试使用activejdbc解决客户端断开连接的问题。因此,当没有互联网时,客户端应用程序会对插入和后续更新进行排队。然后,当他们有连接时,这些批次就会通过。
为了支持这一点,客户端使用临时主键,这些主键将在恢复连接并应用批处理时生成auto_increment键的结果。为此,我需要获取在执行save()或create()时生成的密钥。 activejdbc可以使用https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#getGeneratedKeys%28%29吗?
答案 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。