Android Ormlite 学习笔记2 -- 主外键关系

以上一篇为例子,进行主外键的查询

定义Users.java 和 Role.java

Users -- Role 关系为:1对1 即父表关系

Role -- Users 关系为:1对多 即子表关系

 

下面看2个实体类,贴主要代码

 

-- Role.java

    public ForeignCollection<Users> getUsers() {
        return users;
    }

    public void setUsers(ForeignCollection<Users> users) {
        this.users = users;
    }

    @ForeignCollectionField(eager = true) // 必须
    private ForeignCollection<Users> users;

 

 -- Users.java

    @DatabaseField(foreign = true, foreignColumnName = "rid")
    private Role role;

    public Role getRole() {
        return role;
    }

    public void setRole(Role role) {
        this.role = role;
    }

 

1对1关系很简单,也很神奇的地方是直接调用就可以了。

    /**
     * 一对一
     * 
     * @throws SQLException
     */
    public void testSelect() throws SQLException {
        List<Users> datas = userDao.queryForAll();
        for (Users user : datas) {
            Log.i("chenrui", "[name]" + user.getName());
            Log.i("chenrui", "[Role]:" + user.getRole().getName());
        }
    }

 

 

1对多关系,因为ForeignCollection<T> 继承了 这几个 CloseableIterable<T>, Collection<T>, Iterable<T> 接口,所以ForeignCollection<T>是可以使用foreach遍历。

    /**
     * 一对多
     * 
     * @throws SQLException
     */
    public void testSelctMore() throws SQLException {
        ForeignCollection<Users> datas = roleDao.queryForId("1").getUsers();
        if (!datas.isEmpty()) {
            for (Users user : datas) {
                Log.i("chenrui", "User:" + user.getName());
            }
        }
    }

 

 

转载于:https://www.cnblogs.com/chenrui7/p/3568100.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值