7
回答
jfinal如何进行多表查询
开发十年,就只剩下这套Java开发体系了   
jFinal如何进行多表查询?
举报
小窝他爹
发帖于7年前 7回/10K+阅
共有7个答案 最后回答: 4年前
非常有价值的问题,JFinal多表查询也是纯sql,只管写sql就成了,JFinal会自动将查询结果封装成List<YourModel> 或 List<Record>。如果select子句中包含了多个表中的字段,那么只管yourModel.get("attrName"),这样就解决了one to one、one to many、many to many的问题,极度方便。
--- 共有 6 条评论 ---
mekain回复 @JFinal : 根据你这样的想法,用户的ID获取不到啊!我把图切出来了http://www.oschina.net/question/723516_89402 6年前 回复
JFinal回复 @bobshi : 此种用法可以在不用学新东西的情况下来实现Model之间的关联,遵循JFinal设计原则之一:避免问题,而非解决问题 6年前 回复
JFinal回复 @bobshi : 类似的 one to one、many to one 也可以这么玩 6年前 回复
JFinal回复 @bobshi : 除此之外还有新写法,例如User与Blog是一对多关系,假如你手头有个user对象,想要获取这个 user的所有 Blog对象,可以在 User中定义一个方法:public List<Blog> getBlogs(){return Blog.dao.find("select * from blog where user_id=?",get("id")); 6年前 回复
bobshi这也可以?!能多写类似这样的例子到文档或者Demo里吗, 这样使用者就不会花时间去探索发现好的用法了~你放心,使用者不会因为你写了复杂的例子而被吓跑的,至少我不会,而且会很兴奋。我就因为看到你这个写法而感到兴奋,因为我有点儿怕了mybatis的xml mapping了…… 6年前 回复
补充回答一下,如果多个表中有相同名字的字段名,那么可以在select中使用别名,使用别名以后可以这样来取: yourModel.get("别名")
--- 共有 2 条评论 ---
JFinal回复 @Ken_Guan : http://code.google.com/p/jfinal/downloads/list 7年前 回复
KenjFinal文档有吗? 7年前 回复

引用来自“JFinal”的评论

非常有价值的问题,JFinal多表查询也是纯sql,只管写sql就成了,JFinal会自动将查询结果封装成List<YourModel> 或 List<Record>。如果select子句中包含了多个表中的字段,那么只管yourModel.get("attrName"),这样就解决了one to one、one to many、many to many的问题,极度方便。

如果多表查询出来是YourModel,但是有个非model字段需要在代码中处理一下;例如,隐藏手机号码中间四位,如果直接model.get("phoneNumber");注意,这个phoneNumber是关联查询出来的,并非model中的表字段;这样就会出错,请问应该在代码中怎么取?@JFinal

--- 共有 1 条评论 ---
netbuffer我遇到这个问题,是在前端jstl取数据的时候,model中没有这个自字段,我解决办法就是在这个model中写了个get方法,然后前端就能取得了 3年前 回复
顶部