dao: 一对一和一对多的问题
GoogleCodeExporter opened this issue · comments
如:
我现在有两个表:
---------------
表一:user
字段:
username,
role_id
--------------
表二:role
字段:
id,
rolename
---------------------
id和role_id关联
========================
pojo:
userEntity{
@Column
private Integer role_id;
@One(target = roleEntity.class, field = "role_id")
private roleEntity role;
}
-------------------
roleEntity{
省略。。。
}
=======================
现在我要查出的内容:
rolename,username
rolename,username
rolename,username
rolename,username
rolename,username
----------------------
这么个列表
我要用哪个方法?
早doc里实在没看到啊
dome里也没有
doc里应该写下
不知道怎么用
还有
dome应该加点
一对多
多对一
的影视,这样及时没看懂说明文档,
看dome也懂了。
Original issue reported on code.google.com by zozoh...@gmail.com
on 27 Apr 2010 at 1:18
List<UserEntity> users = dao.query(UserEntity.class, null, null); // 获取
所有的 User
for(UserEntity u : users)
dao.fetchLinks(u, "role"); // 获取没个 User 的 role 字段
// 循环打印
for(UserEntity u : users)
System.out.printf("%s, %s\n", u.getRole().getName(), u.getName());
Original comment by zozoh...@gmail.com
on 27 Apr 2010 at 1:22
- Added labels: ****
- Removed labels: ****
当然如果仅仅是为了获得 role
的名称,更好一点的办法是采用视图
===================================================
第一步: 创建视图
CREATE VIEW v_user AS
SELECT *, rnm=(SELECT roleName FROM role WHERE role.id = u.id)
FROM user AS u;
===================================================
第二步: 修改 UserEntity 为:
@Table("user") // 数据表,更新,删除,插入,将操作它
@View("v_user") // 声明了 @View, 查询操作将操作这个视图
public class UserEntity{
@Column
private Integer role_id;
@One(target = roleEntity.class, field = "role_id")
private roleEntity role;
@Column("rnm")
@Readonly // 声明了这个注解, 更新,插入操作将忽略这个字段
private String roleName;
}
===================================================
第三步: 查询 UserEntity 时自然会得到 RoleName
List<UserEntity> users = dao.query(UserEntity.class, null, null); // 获取
所有的 User
// 循环打印
for(UserEntity u : users)
System.out.printf("%s, %s\n", u.getRoleName(), u.getName());
=========================================================
相关 wiki 为: http://code.google.com/p/nutz/wiki/dao_view
Original comment by zozoh...@gmail.com
on 27 Apr 2010 at 1:31
- Added labels: ****
- Removed labels: ****
等创建了相关的 Demo ,这个 Issue 可以设为 WontFix
Original comment by zozoh...@gmail.com
on 27 Apr 2010 at 1:32
- Added labels: ****
- Removed labels: ****
真对这种情况,写两个 Demo,一个用 View 一个用 自定义 SQL
Original comment by zozoh...@gmail.com
on 27 Apr 2010 at 1:51
- Added labels: ****
- Removed labels: ****
Original comment by wendal1985@gmail.com
on 13 May 2010 at 10:25
- Added labels: Module-Dao
- Removed labels: ****