ccraise 发表于 2022-12-7 17:33:24

使用“视图”突破JPQL的限制,实现SQL查询

本帖最后由 ccraise 于 2022-12-7 18:39 编辑

JPQL的数据操纵能力实在有限,稍微复杂一点的查询就无法支持
而且在o2oa系统中的这种用法,限制更多

但是又不想去费力搞开发
那么为了把复杂的查询统计结果给展示出来,怎么办呢?

经测,在当前版本(7.2.7)中,可以通过在数据库中使用使用“视图”来突破限制
我这里是使用Mariadb(同MySQL)做的尝试
尝试步骤如下:
1、创建自建表,编译,重启o2server
2、在数据库里找到自建表(名称形如:QRY_DYN_<自定义的表名>),记下名字,然后把自建的那个表删除或改名(建议改名)
3、在数据库里面新建一个和自建表同名的视图,在这个视图里面写复杂SQL语句,注意视图输出的字段要和前端自建表的字段名相匹配(在数据库里面,o2oa的自建表字段名会在前面多加一个“x”)
4、在o2oa数据中心新建查询。由于我在测试中在数据库直接删除了自建表,因此缺少很多字段,只能以读取局部值的方式使用JPQL来进行查询

这种方式之所以能成功,是因为在数据库里面,select语句查询表和查询视图是没有区别的,因此才能用视图来欺骗o2server,
然后就可以在数据库里面,愉快的写SQL了






论坛管理员 发表于 2022-12-8 10:14:53

点赞:handshake

leo-007 发表于 2022-12-10 09:40:14

请问写自建的时候,如果修改的呢

论坛管理员 发表于 2022-12-12 09:07:04

leo-007 发表于 2022-12-10 09:40
请问写自建的时候,如果修改的呢

前端有封装找的table,对自建表进行增删改查
页: [1]
查看完整版本: 使用“视图”突破JPQL的限制,实现SQL查询