使用jfinal2.2。项目开始是以mysql搭建的,model使用generator生成,表名和字段名是大小写混用,正常运行。
改oracle:数据库用Navicat Premium数据迁移,从mysql迁移到oracle,
Q1:运行generator报错,dialect和ValidationQuery都设置成oracle的,提示ORA-00942: 表或视图不存在
Q2:如果在mysql中手动修改_MappingKit,将表名都添加\"引号,可以启动,运行又会报错:
提示是找不到属性名(没有手动修改model),在plsql中查看,Navicat Premium数据迁移过来的表和字段,都是和mysql中一样的(保持了大小写)。
请问波总:是否是oracle大小写问题(手动在oracle中创建表,表名和字段名全部大写,运行generator依然报Q1),mysql迁移到oracle可否有什么需要注意的地方,最佳实践,比如表怎么迁移,model是否需要修改或者重新生成。
项目:JFinal
1:方言要设置好,生成 model 以及运行时都要设置
2:oracle 默认会在 sql 查询出数据时,将字段名变为大写,但生成的 BaseModel 会是正确的,在读写字段时用 getter setter 方法即可
3:在没有使用 getter、setter 而是用 get(String) 的地方,注意大小写与字段名相同,但也可以使用一下 arp.setContainerFactory(new CaseInsensitiveFactory()) ,使其可以不用区分大小写
4:表不存在的问题,通常是当前用户有没有权限,虽然明明看到表是存在的,但是就是读不到