5.10 表关联操作

  1. JFinal ActiveRecord 天然支持表关联操作,并不需要学习新的东西,此为无招胜有招。表关联操作主要有两种方式:一是直接使用sql得到关联数据;二是在Model中添加获取关联数据的方法。
  2. 假定现有两张数据库表:userblog,并且userblog是一对多关系,blog表中使用user_id关联到user表。如下代码演示使用第一种方式得到user_name
  1. public void relation() {
  2. String sql = "select b.*, u.user_name from blog b inner join user u on b.user_id=u.id where b.id=?";
  3. Blog blog = Blog.dao.findFirst(sql, 123);
  4. String name = blog.getStr("user_name");
  5. }
  1. 以下代码演示第二种方式在Blog中获取相关联的User以及在User中获取相关联的Blog
  1. public class Blog extends Model<Blog>{
  2. public static final Blog dao = new Blog();
  3.  
  4. public User getUser() {
  5. return User.dao.findById(get("user_id"));
  6. }
  7. }
  8.  
  9. public class User extends Model<User>{
  10. public static final User dao = new User();
  11.  
  12. public List<Blog> getBlogs() {
  13. return Blog.dao.find("select * from blog where user_id=?", get("id"));
  14. }
  15. }

< 5.9 Dialect多数据库支持

5.11 复合主键 >

原文: http://www.jfinal.com/doc/5-10