greenDao插入数据无效(多表关联)
来源:互联网 发布:iphone移动网络开关 编辑:程序博客网 时间:2024/06/14 21:36
直接说我的案例吧,学生选课,一个学生有多个课,也就是student中有一个List<Course>。因为是多对多的关系,所以建立了第三张表JoinCourseToStudent。
@Entitypublic class Student { @Id(autoincrement = true) Long sid; String name; @ToMany @JoinEntity( entity = JoinCourseToStudent.class, sourceProperty = "sid", targetProperty = "cid" ) private List<Course> courses; @ToMany(referencedJoinProperty = "sid") private List<Score> scores;
@Entitypublic class Course { @Id(autoincrement = true) private Long id; private Long teacherId; private String name,college,place; @ToMany @JoinEntity( entity = JoinCourseToTime.class, sourceProperty = "cid", targetProperty = "tid" ) private List<Time> times; @ToMany @JoinEntity( entity = JoinCourseToStudent.class, sourceProperty = "cid", targetProperty = "sid" ) private List<Student> students;
@Entitypublic class JoinCourseToStudent { @Id(autoincrement = true) private Long id; private Long cid; private Long sid;
每次选课的时候提取当前学生的已有课程List<Course>,一一比较当前课是否已选,未选的话则为joinCourseToStudent插入一条数据,与之对应的也就是student的List<Course>增加一条。
然而选完课A之后再次选发现没有提示“当前课程已选”,进一步发现List<Course>没有更新,没有新增的一条Course,退出应用重新加载后才更新。
原因是在多表关联中,比如本案例中一个学生有多个课程,插入数据后当前操作的list并不会更新,即使你重新通过学生获取这个list,也是没有更新的缓存版本,必须手动更新:
student.resetCourses();
每次进行数据后这样将操作的数据与数据库进行同步就可以了。
阅读全文
0 0
- greenDao插入数据无效(多表关联)
- GreenDao-多表关联
- Greendao 插入数据失败
- GreenDao建立多表之间的关联
- Mybatis 多对多关联表关联 如何插入关联表数据
- ORM对象关系映射之GreenDAO建立多表关联
- ORM对象关系映射之GreenDAO建立多表关联
- greenDao多表关联To-Many踩过的坑
- GreenDAO框架(三)表的关联关系
- hibernate多对多关联数据插入
- 插入关联表数据的优化方法
- mybatis多对多关联,向关联表插入数据方法
- sqlite中插入数据无效
- greendao创建关联表的数据库
- hibernate级联操 同时向2张表插入数据(一对多的关联,一个简单的例子说明)
- hibernate中如何向关联表中插入数据,或者更新关联表数据
- SET集合映射,相当于两个表关联,共同插入数据
- 插入关联表数据的优化方法(转)
- 接口是什么?
- jdk的安装
- Python图片数据增强crop、rotate、environment factor
- poj 2082 Terrible Sets【单调栈】
- ZOJ
- greenDao插入数据无效(多表关联)
- 1 第一步 数据格式转换
- 牛客网上一道考研题
- 主从复制
- D
- fas rcnn
- 【BashuOJ3520】警察局长-最短路树+树上背包+概率DP
- opencv 中 最小二乘直线拟合fitline测试
- Andrew NG机器学习逻辑回归编程作业