(求助!)Jfinal连接oracle数据库自动生成model的问题

错误信息:E932665E-1487-482F-90F3-79546246ABDC.png


然后debug跟踪sql语句

586BA5E5-CFE8-47A4-BEF9-AA83807B5184.png

发现表名少啦双引号。求助怎么解决

评论区

JFinal

2017-03-26 17:15

这个表名比较特殊,建议通过创建 MyOracleDialect extends OracleDialect,覆盖掉其中的 forTableBuilderDoBuild() 方法,将下面的这一行改一下:
return "select * from " + tableName + " where rownum < 1";

改成如下:
return "select * from \"" + tableName + "\" where rownum < 1";

最后通过 generator.setDialect(new MyOracleDialect()) 进行方言的切换

Xyw

2017-03-26 20:45

@JFinal 收到 哎呀 我怎么没想到 我还想说去重新弄jar包的

Xyw

2017-03-26 20:46

JFinal

2017-03-26 20:48

@Xyw jfinal 的大部分组件都是可以扩展的

sjb

2017-03-28 17:56

大神们帮我看看我的是什么问题,,同样也是oracle数据库的
Build TableMeta ...
Exception in thread "main" java.lang.RuntimeException: primaryKey required by active record pattern
at com.jfinal.plugin.activerecord.generator.MetaBuilder.buildPrimaryKey(MetaBuilder.java:199)
at com.jfinal.plugin.activerecord.generator.MetaBuilder.build(MetaBuilder.java:96)
at com.jfinal.plugin.activerecord.generator.Generator.generate(Generator.java:217)
at com.sztr.model._JFinalDemoGenerator.main(_JFinalDemoGenerator.java:56)

sjb

2017-03-28 18:00

貌似是某个表没有主键的意思?

JFinal

2017-03-28 18:05

@sjb 没有主键的表不要去生成:generator.addExcludeTable(tableName)

sjb

2017-03-28 18:27

Exception in thread "main" java.lang.RuntimeException: java.sql.SQLException: 流已被关闭
at com.jfinal.plugin.activerecord.generator.DataDictionaryGenerator.rebuildColumnMetas(DataDictionaryGenerator.java:205)
at com.jfinal.plugin.activerecord.generator.DataDictionaryGenerator.generate(DataDictionaryGenerator.java:61)
at com.jfinal.plugin.activerecord.generator.Generator.generate(Generator.java:234)
at com.sztr.model._JFinalDemoGenerator.main(_JFinalDemoGenerator.java:56)
Caused by: java.sql.SQLException: 流已被关闭
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.LongAccessor.getBytes(LongAccessor.java:151)
at oracle.jdbc.driver.LongAccessor.getString(LongAccessor.java:193)
at oracle.jdbc.driver.T4CLongAccessor.getString(T4CLongAccessor.java:422)
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:397)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1515)
at com.jfinal.plugin.activerecord.generator.DataDictionaryGenerator.rebuildColumnMetas(DataDictionaryGenerator.java:179)
... 3 more

sjb

2017-03-28 18:27

新的问题又来了,,有点尴尬

sjb

2017-03-28 18:31

_MappingKit.java可以正常被添加了,但是model和baseModel并没有

sjb

2017-03-28 18:36

查了一下是因为是Long类型的问题?数据库很多number类型的字段

sjb

2017-03-28 21:36

@JFinal 可以请问一下为什么会出现这个错误吗
Exception in thread "main" java.lang.RuntimeException: java.sql.SQLException: 流已被关闭

sjb

2017-03-28 21:46

// 设置是否生成字典文件
generator.setGenerateDataDictionary(false);
把这个设置为false之后就可以了、、、

syso

2018-04-06 17:13

@JFinal 和楼上一样的问题也这么解决啦 但是会src\com\syhz\model\base\BaseBin$+ztmv2n0tssszik+tk\oxa==$0.java (系统找不到指定的路径。) 这个错

syso

2018-04-08 13:49

@JFinal没人吗

syso

2018-04-08 13:51

@sjb 大佬您oracle自动生成model成功了吗 能看下您的文件吗

一川死水

2018-04-10 18:55

@sjb 你问题解决了么?我也遇到了

syso

2018-04-16 12:05

@一川死水 你解决了吗 我的还没解决 咋回事啊 到底

np

2018-05-03 14:14

@sjb 大神怎么解决的我的也报流关闭的错误了

热门反馈

扫码入社