首页 > 移动平台 > 详细

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

时间:2014-02-26 15:59:36      阅读:508      评论:0      收藏:0      [点我收藏+]

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

定义Users.java 和 Role.java

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

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

 

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

 

-- Role.java

bubuko.com,布布扣
    public ForeignCollection<Users> getUsers() {
        return users;
    }

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

    @ForeignCollectionField(eager = true) // 必须
    private ForeignCollection<Users> users;
bubuko.com,布布扣

 

 -- Users.java

bubuko.com,布布扣
    @DatabaseField(foreign = true, foreignColumnName = "rid")
    private Role role;

    public Role getRole() {
        return role;
    }

    public void setRole(Role role) {
        this.role = role;
    }
bubuko.com,布布扣

 

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

bubuko.com,布布扣
    /**
     * 一对一
     * 
     * @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());
        }
    }
bubuko.com,布布扣

 

 

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

bubuko.com,布布扣
    /**
     * 一对多
     * 
     * @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());
            }
        }
    }
bubuko.com,布布扣

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

原文:http://www.cnblogs.com/chenrui7/p/3568100.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!