做一个笔记,oracle中view视图使用Generator方式自动生成对象

背景:

使用数据库oracle,想使用Generator方法生成oracle中对应视图的对象

jfinal版本:3.5

参考demo中的_JFinalGenerator.java生成器

使用oracle 11g 默认的数据库orcl,新建了用户mytest,并建立单独的表空间,赋予了相关权限。

注意事项1:因为发现orcl自带的系统表很多所以没有使用sys等账号测试,使用新建账号测试获得如下结果:暂时发现Generator生成oracle对象时是根据给定的用户去生成齐拥有的表,建表时注意表拥有者必须是当前使用用户。

但是发现无法生成视图,视图使用mytest(指定的用户)创建也不行,后来看到下面这里的的代码以及注释,需要重写Metabuilder.java中的getTablesResultSet

orclview1.png

方法重写:

orclview2.png

重写该方法后依然使用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了

orclview3.png

评论区

热门反馈

扫码入社