jfinal的Db.save方法为什么必须要有主键

无争 发布于 2014/10/11 09:25
阅读 2K+
收藏 1
@jfinal 你好,jfinal Db.save(Record r)方法为什么必须要主键?
如果是复合主键或者联合主键怎么存?
加载中
0
JFinal
JFinal

   Record 并未与数据库表建立过关联,所以不知道数据表的任何情况,包括主键名也不知道,但 save 方法需要知道主键名称,这样才可以在生成主键后立即得到值并 set 到 record 对象中去。参见 save 方法中的这一行代码:

record.set(primaryKey, getGeneratedKey(pst));

    getGeneratedKey(pst) 方法会将 insert sql 生成的 id 值马上取回来,有需求在 save 后马上使用 id。

   目前 JFinal 的 Model 类不支持复合主键,Db + Record 支持复合主键,保存时,只需要指定一个主键,另一个主键当成普通属性就可以

返回顶部
顶部