关于play框架中要对自己执行原生的sql不能得到page的解决方法。
来源:互联网 发布:月球电影知乎 编辑:程序博客网 时间:2024/06/04 00:46
关于play框架中要对自己执行原生的sql不能得到page的解决方法。
假设company 和computer 是one to many 你想通过company name 和computer name 来筛选,就只能执行原生sql了。不能得到Page.
但是通过加一句.in("company.id", Company.findCompanyid("IBM"))即可。
详细见下面过程。
public static Page<Computer> page(int page, int pageSize, String sortBy, String order, String filter) {
List<Long> list = new ArrayList<Long>();
list.add(1L);
list.add(23L);
return
find.where()
.ilike("name", "%" + filter + "%")
.orderBy(sortBy + " " + order)
.fetch("company")
.findPagingList(pageSize)
.setFetchAhead(false)
.getPage(page);
}
此方式为通过play得到name like name的结果,如果我们想要得到computer name like name and company name like name 就只能自己写原生sql得到的结果只能是list 或者set
不能得到page。
但是computer 和company是join的,所以通过 company name 可以得到id ,然后在computer里面再加一句 .in("company.id", Company.findCompanyid("IBM"))即可。
public static List<Long> findCompanyid(String name) {
List<Long> list = new ArrayList<Long>();
for(Company c: Company.find.where().ilike("name", "%"+name+"%").findList()) {
list.add(c.id);
}
return list;
}
最终的 public static Page<Computer> page(int page, int pageSize, String sortBy, String order, String filter) {
List<Long> list = new ArrayList<Long>();
list.add(1L);
list.add(23L);
return
find.where()
.ilike("name", "%" + filter + "%")
.orderBy(sortBy + " " + order)
.fetch("company")
.findPagingList(pageSize)
.setFetchAhead(false)
.getPage(page);
}
- 关于play框架中要对自己执行原生的sql不能得到page的解决方法。
- play执行原生SQL
- 在laravel框架中如何查看自己写的sql原生格式
- hibernate对原生SQL查询执行的控制
- Hibernate 原生sql的执行
- SSH框架中3.0版本不能执行SQL语句update,insert的解决办法。
- ThinkPHP实现对数据库中表的修改删除以及两种原生SQL语句的执行
- Windows media play 10 .11 不能在线收看的解决方法
- cs文件中不能继承System.Web.UI.Page问题的解决方法
- cs文件中不能继承System.Web.UI.Page问题的解决方法
- 使用hibernate执行原生的sql
- thinkphp里面执行原生的sql语句
- hibernate执行原生sql的别名问题
- Spring的jdbcTemplate查询执行原生sql
- Hibernate执行原生的sql语句
- 关于SQL SERVER 2005 不能输入中文的解决方法
- 关于在设置启动文件夹或者设置用户选项时不能得到当前用户的解决方法
- Play framework 执行原生SQL并转换成实体对象
- 路由器原理
- ubunt14.04安装cuda
- jdbc数据库连接及优化
- python中汉字匹配
- android学习之路--android studio安装,主题,各种配置以及快捷键,注释,以及其他各种问题总结
- 关于play框架中要对自己执行原生的sql不能得到page的解决方法。
- Static 静态成员函数-与多线程
- 用 gitolite搭建git server实现权限控制(1)
- try{}catch(Exception e){}与spring事务
- 关于JAVA的几个概念
- php var_export 用法
- 事务在日志的应用
- Linux下c语言多线程编程
- Hadoop-2.5.0-cdh5.2.0 获取源码及编译