JFinal 多表操作时候如何实现

yulin2015 发布于 2015/05/15 14:39
阅读 1K+
收藏 0
现在的ActiveRecordPlugin怎么和多表进行映射呢,如果不可以那我多表查询怎么处理?
加载中
0
cnDavidChen
cnDavidChen

sql语句想怎么拼就怎么拼啊

Record record = Db.findFirst("SELECT a.id AS id, a.name AS `name`, b.code AS code FROM table1 a LEFT JOIN table2 b ON a.id=b.aid WHERE a.id = 1");



这样取数据:

int id = record.getInt("id");

String name = record.getStr("name");



0
yulin2015
yulin2015

我的意思是多表,上面给的例子是单表。。。

不只是SQL我的意思是Config里就是多表。

比如我Config里是--

arp.addMapping("mytable1", "name",Mytable.class);
Mytable里的record是对我mytable1这个表进行增删改查对吧。

我现在想的是多个表进行查询。

0
yulin2015
yulin2015

难道说JFinal多表查询方式,只能是我在Mytable类里SQL写成多表查询,返回结果。

不能直接映射一个DTO的JAVA类吗,它是多个表查询的结果集合。


0
cnDavidChen
cnDavidChen
首先,Jfinal的Model跟Record很像,Model同时充当了Record和DAO的角色,只是Model指定了其属性只能为数据库表字段。可以认为JFinal的实体就是Record,查询出来的数据都是放在record中,不管是在一张表还是多张表联合查询。


单表查询的结果Model你认可是DTO吧,那么多表查询的是Record。为什么想要把它再变为Model呢?没有必要,因为你要的是查询出来的这个数据,又不是要通过它来操作数据库(也就是它的DAO功能)。


实在想要严格约束实体跟确定的表字段对应,可以在数据库生成view,再映射成Model。
返回顶部
顶部