背景:
使用数据库oracle,想使用Generator方法生成oracle中对应视图的对象
jfinal版本:3.5
参考demo中的_JFinalGenerator.java生成器
使用oracle 11g 默认的数据库orcl,新建了用户mytest,并建立单独的表空间,赋予了相关权限。
注意事项1:因为发现orcl自带的系统表很多所以没有使用sys等账号测试,使用新建账号测试获得如下结果:暂时发现Generator生成oracle对象时是根据给定的用户去生成齐拥有的表,建表时注意表拥有者必须是当前使用用户。
但是发现无法生成视图,视图使用mytest(指定的用户)创建也不行,后来看到下面这里的的代码以及注释,需要重写Metabuilder.java中的getTablesResultSet
方法重写:
重写该方法后依然使用Generator方法生成还是没有生成相关视图。
最后解决方式:oracle创建视图时视图命名为“用户名.视图名”,并添加主键(不知道添加主键是否有影响,单独添加主键未修改视图名称为"用户名.视图名"时依然无法生成视图对象)
例如我的视图创建名称如下:
create or replace VIEW MYTEST.VIEW_MYTEST_A
(T_ID,P_NAME,BED_NO UNIQUE RELY DISABLE NOVALIDATE,CONSTRAINT VIEW_MYTEST_A_ID_PK PRIMARY KEY (T_ID) RELY DISABLE NOVALIDATE)
as
select
T_ID as T_ID,
PATIENT_NAME as P_NAME,
HOSPITAL_BED_NO as BED_NO
FROM
MYTEST.AC_PATIENT_INFO_ORCL;
这样就可以根据视图生成对应的dao、model了