Dialect 修改oracle方言失败

现在在用generate 自动生成Oracle表的model 方言一直修改不了,debug之后dialect类型依然是mysql方言

public void configPlugin(Plugins me) {

// 配置C3p0数据库连接池插件

C3p0Plugin C3p0Plugin = createC3p0Plugin();

me.add(C3p0Plugin);

// 配置ActiveRecord插件

ActiveRecordPlugin arp = new ActiveRecordPlugin(C3p0Plugin);

arp.setShowSql(true);

me.add(arp);

arp.setDialect(new OracleDialect());

arp.setContainerFactory(new CaseInsensitiveContainerFactory());


ShiroPlugin shiroPlugin = new ShiroPlugin(this.routes);

shiroPlugin.setLoginUrl("/login.jsp");//登陆url:未验证成功跳转

        shiroPlugin.setSuccessUrl("/index/index");//登陆成功url:验证成功自动跳转

shiroPlugin.setUnauthorizedUrl("/login.jsp");//授权url:未授权成功自动跳转

me.add(shiroPlugin);

}

     blob.pngblob.png

数据库是已经连接上了 ,用Db Record模式也没有问题。

blob.png

求解~

评论区

JFinal

2017-02-17 15:20

generator 的方言是这么改的:
generator.setDialect(new OracleDialect())

而不是: arp.setDialect(...)

JFinal

2017-02-17 15:22

从异常消息上看,存在没有主键的表,active record 的基本出发点是一条数据表记录对应一个 model 对象,对应的手段就是利用主键,所以必须要有主键

如果确实没有主键,使用一下generator.addExcludedTable(...) 将这些表排除掉,然后使用 Db + Record 模式操作这些表

asdasda77

2017-02-17 16:09

@JFinal thinks 解决了~确实是写错地方了~

热门反馈

扫码入社