1, 能否直接使用外键id ?
# 声明一个外键对象 和 一样普通字段 新建表的时候会出错 , 查数据的时候也会出错
# http://stackoverflow.com/questions/18988750/ormlite-android-setting-foreign-key-fields-directly
# 声明了两个类,分别处理对象和id
2, 对象自己有CRUD ,BaseDaoEnabled
对象的实例方法有对应的crud
只要有继承就行
使用起来如果是new 出来的对象就要setDao来指定对应dao
如果使用dao进行的query则自动已经set好了,直接进行update等操作
3,http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_2.html#foreignAutoRefresh
感觉和eager差不多,就是一个是 一对多一边一个,不知道这么理解对不对
4, lazyload eager load
4.1 配置操作
@ForeignCollectionField(eager = true)
查询的时候,直接把关联查出来设置进属性
4.2 手动指定
# http://stackoverflow.com/questions/7301418/ormlite-inner-join-on-three-tables
http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_3.html#Join-Queries
可以使用queryBuilder.join的方法
注意要把有条件的加在join里,反过来之后似乎会遍历整个表
4.3 eagerload 也只是没一个对象的关联查出来,似乎也存在n+1查询的情况,看来只有通过join来解决
5, raw query
http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_2.html#Raw-Queries
GenericRawResults<String[]> result 返回对象
result.getColumnNames() # column的数组
result.getResults() List<String[]> 每一个string[] 对应 columns