1

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

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

4

1 回答 1

2

当你保存一个模型时,它的 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

于 2018-03-12T10:16:07.140 回答