美文网首页
数据库框架踩坑记录

数据库框架踩坑记录

作者: Edward_yfbx | 来源:发表于2018-06-13 16:10 被阅读19次

    GreenDao

    1. 缓存机制,导致更新记录后查询不到真实数据
      问题:更新记录后,数据库中的数据已经更新,但缓存中的数据没有更新,再次查询时直接返回缓存中的数据,导致查询结果不正确。
      解决:清除缓存 DaoSesion.clear() ,会清除所有表的缓存(那么缓存机制意义何在?)
    2. 主键(id)类型必须为包装类
      问题:将主键id设置类型设置为long类型时,不设置id会插入失败
    @Entity
    public class Student {
    
        @Id(autoincrement = true)
        private long id;
        private String name;
        private int age;
    
    //在插入第一条数据时,id默认为0,插入成功,继续插入时表中存在id为0的数据,插入失败报错
     Student student = new Student();
     student.setName("张三");
     dao.insert(student);
    
    //手动设置主键id,插入成功
     Student student = new Student();
     student.setId(1);
     student.setName("张三");
     dao.insert(student);
    

    解决:主键id必须为包装类Long

    @Entity
    public class Student {
    
        @Id(autoincrement = true)
        private Long id;
        private String name;
        private int age;
    
    //id为包装类时,主键自增才会生效,且主键是从1开始,不是从0开始
     Student student = new Student();
     student.setName("张三");
     dao.insert(student);
    
    1. 改变数据表中的字段或增加新表会导致数据库被清空

    LitePal

    1. 批量插入比循环单条插入速度慢很多

    相关文章

      网友评论

          本文标题:数据库框架踩坑记录

          本文链接:https://www.haomeiwen.com/subject/szijeftx.html