NutzCN Logo
问答 最近使用nutz的两个建议,关于@At和Dao.query()
发布于 2795天前 作者 black-lan 2200 次浏览 复制 上一个帖子 下一个帖子
标签:

很早之前就接触到nutz,不过一直没有什么使用场景,最近自己做了点东西,有一些想法
1. 希望@At等注解,支持在PACKAGE添加
我在使用的时候,url会跟包名尽量保持一致或部分一致,但是@At注解只能在TYPE和METHOD,那同一路径下就得重复配置好多次,如果能在package上设置统一路径的话,就方便很多
2. org.nutz.dao.Dao.query()等方法,没有类似fetchLinks的功能
org.nutz.dao.Dao.fetchLinks()等,查询是关联数据,貌似只支持单条数据,query没有类似的方法,如果要关联数据,只能自己遍历一遍list,调用*links方法,一条一条关联,这样明显低效,如果批量处理,则只能自己把关联id拼接起来,一起查出来,再从结果中获取数据拼接,后一种方法比前一种方法高效,但是需要自己实现,对此完全可以实现一个queryLinks()方法,不知道是没有,还是我没有找到

一致都觉得nutz使用起来很方便,实际用起来也确实是,因为并不是很深入的了解,以上两个也只是基于使用想到的,不知道是否合理,大家有兴趣可以一起讨论

2 回复
  1. @At支持package级别,这个考虑一下 ^_^
  2. fetchLinks支持集合的,看下面的代码. 至于关联查询(生成left join)一类,需要慎重考虑一下,^_^
List<User> list = dao.fetchLinks(dao.query(User.class, Cnd.where("age", ">", 18)), null);

fetchLinks这个我试一下,功能支持的话就没必要再扩展query了
join什么的是绝对不要不要的,首先抛弃,如果真要实现的话,我觉得可以根据关联关系,一次把需要关联的数据查出来(用in条件),代码上再实现javabean的关联,这样的话,如果两个表的关联查询,只需要执行两次sql查询就ok了
fetchLinks的实现方式没了解过,抽时间可以看看,如果是遍历集合的话,还是会触发多次sql查询,一旦并发量大了,查询次数会成倍上升。

添加回复
请先登陆
回到顶部