我有两个表与1:n的关系,我正在使用内容提供程序和cursorloader.
如何使用游标加载器进行连接查询?我可以用内容提供程序中的rawSql以某种方式破解它,但是如何在游标加载器构造函数中执行它是超出我的.
非常感谢 !
CursorLoader(Context context,Uri uri,String [] projection,String selection,String [] selectionArgs,String sortOrder)
当Uri只能指向一个表时,如何查询连接
Com*_*are 31
在Uri不指向任何表.它指向你想要的任何东西.
让我们假装你的两张牌是Customer和Order.一个客户可能有很多订单.您希望执行查询以获取所有未完成的订单...但您希望加入一些您需要的与客户相关的列,例如客户的名称.
让我们进一步假装您已经拥有content://your.authority.goes.here/customer并content://your.authority.goes.here/order定义为纯粹查询这些表.
你有两个选择:
在您的帐户上添加客户显示名称的连接/order Uri.拥有另一个可用列可能不会破坏提供者的任何现有消费者(尽管测试总是一个好主意).这就是ContactsContract它 - 它在一些基本列中加入,如联系人的名字,几乎所有表的所有查询.
创建content://your.authority.goes.here/orderWithCust与此基本查询相同的基本查询/order,但包含您的联接.在这种情况下,您可以拥有insert(),update()并delete()抛出某种类型RuntimeException,以提醒您不应该使用/orderWithCustas作为修改数据Uri.
最后,设计ContentProvider Uri系统类似于设计REST Web服务的URL系统.在这两种情况下,必须在提供者/服务器端完成连接,因此您可能需要中断一个表到一个URL的基线以提供一些有用的连接.
| 归档时间: |
|
| 查看次数: |
8445 次 |
| 最近记录: |