jooq 3.14 codegen缺少information_schema列错误

问题描述

我已转至jooq 3.14并面临代码生成错误
内容: 我正在使用MysqL 5.7。在我的数据库中,@R_137_4045@ion_schema.COLUMNS.DATETIME_PRECISION丢失了。我的问题是用于jooq 3.10的代码生成器。但是使用jooq 3.14会引发以下错误。我是否缺少一些可能使设置不受限制的设置?

看到以下异常:

     [java][main] ERROR org.jooq.Meta.AbstractElementContainerDeFinition - Error while initialising type
     [java] org.jooq.exception.DataAccessException: sql [select @R_137_4045@ion_schema.COLUMNS.ORDINAL_POSITION,@R_137_4045@ion_schema.COLUMNS.COLUMN_NAME,@R_137_4045@ion_schema.COLUMNS.COLUMN_COMMENT,@R_137_4045@ion_schema.COLUMNS.COLUMN_TYPE,@R_137_4045@ion_schema.COLUMNS.DATA_TYPE,@R_137_4045@ion_schema.COLUMNS.IS_NULLABLE,@R_137_4045@ion_schema.COLUMNS.COLUMN_DEFAULT,@R_137_4045@ion_schema.COLUMNS.CHaraCTER_MAXIMUM_LENGTH,coalesce(@R_137_4045@ion_schema.COLUMNS.NUMERIC_PRECISION,@R_137_4045@ion_schema.COLUMNS.DATETIME_PRECISION) as NUMERIC_PRECISION,@R_137_4045@ion_schema.COLUMNS.NUMERIC_SCALE,@R_137_4045@ion_schema.COLUMNS.EXTRA from @R_137_4045@ion_schema.COLUMNS where (@R_137_4045@ion_schema.COLUMNS.TABLE_SCHEMA in (?,?) and @R_137_4045@ion_schema.COLUMNS.TABLE_NAME = ?) order by @R_137_4045@ion_schema.COLUMNS.ORDINAL_POSITION]; UnkNown column '@R_137_4045@ion_schema.COLUMNS.DATETIME_PRECISION' in 'field list'
     [java]     at org.jooq_3.14.0.MysqL.debug(UnkNown Source) ~[?:?]
     [java]     at org.jooq.impl.Tools.translate(Tools.java:2898) ~[jooq-3.14.0.jar:?]
     [java]     at org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:757) ~[jooq-3.14.0.jar:?]
     [java]     at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:389) ~[jooq-3.14.0.jar:?]
     [java]     at org.jooq.impl.AbstractResultQuery.fetch(AbstractResultQuery.java:333) ~[jooq-3.14.0.jar:?]
     [java]     at org.jooq.impl.AbstractResultQuery.iterator(AbstractResultQuery.java:344) ~[jooq-3.14.0.jar:?]
     [java]     at org.jooq.impl.SelectImpl.iterator(SelectImpl.java:2890) ~[jooq-3.14.0.jar:?]
     [java]     at org.jooq.Meta.MysqL.MysqLTableDeFinition.getElements0(MysqLTableDeFinition.java:80) ~[jooq-Meta-3.14.0.jar:?]
     [java]     at org.jooq.Meta.AbstractElementContainerDeFinition.getElements(AbstractElementContainerDeFinition.java:88) [jooq-Meta-3.14.0.jar:?]
     [java]     at org.jooq.Meta.AbstractElementContainerDeFinition.getElement(AbstractElementContainerDeFinition.java:132) [jooq-Meta-3.14.0.jar:?]
     [java]     at org.jooq.Meta.AbstractElementContainerDeFinition.getElement(AbstractElementContainerDeFinition.java:128) [jooq-Meta-3.14.0.jar:?]
     [java]     at org.jooq.Meta.AbstractTableDeFinition.getColumn(AbstractTableDeFinition.java:177) [jooq-Meta-3.14.0.jar:?]
     [java]     at org.jooq.Meta.MysqL.MysqLDatabase.getEnums0(MysqLDatabase.java:496) [jooq-Meta-3.14.0.jar:?]
     [java]     at org.jooq.Meta.AbstractDatabase$8.run(AbstractDatabase.java:1723) [jooq-Meta-3.14.0.jar:?]
     [java]     at org.jooq.Meta.AbstractDatabase.onError(AbstractDatabase.java:3094) [jooq-Meta-3.14.0.jar:?]
     [java]     at org.jooq.Meta.AbstractDatabase.getEnums(AbstractDatabase.java:1720) [jooq-Meta-3.14.0.jar:?]
     [java]     at org.jooq.codegen.JavaGenerator.generateSchemaifEmpty(JavaGenerator.java:495) [jooq-codegen-3.14.0.jar:?]
     [java]     at org.jooq.codegen.JavaGenerator.generateCatalogIfEmpty(JavaGenerator.java:482) [jooq-codegen-3.14.0.jar:?]
     [java]     at org.jooq.codegen.JavaGenerator.generate(JavaGenerator.java:436) [jooq-codegen-3.14.0.jar:?]
     [java]     at org.jooq.codegen.GenerationTool.run0(GenerationTool.java:879) [jooq-codegen-3.14.0.jar:?]
     [java]     at org.jooq.codegen.GenerationTool.run(GenerationTool.java:233) [jooq-codegen-3.14.0.jar:?]
     [java]     at org.jooq.codegen.GenerationTool.generate(GenerationTool.java:228) [jooq-codegen-3.14.0.jar:?]
     [java]     at com.project.annotations.CodeGenerator.run(UnkNown Source) [classes/:?]
     [java]     at com.project.annotations.CodeGenerator.main(UnkNown Source) [classes/:?]
     [java] Caused by: com.MysqL.jdbc.exceptions.jdbc4.MysqLSyntaxErrorException: UnkNown column '@R_137_4045@ion_schema.COLUMNS.DATETIME_PRECISION' in 'field list'
     [java]     at sun.reflect.GeneratedConstructorAccessor19.newInstance(UnkNown Source) ~[?:?]
     [java]     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_265]
     [java]     at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_265]
     [java]     at com.MysqL.jdbc.Util.handleNewInstance(Util.java:409) ~[perfios-database-migrator.jar:?]
     [java]     at com.MysqL.jdbc.Util.getInstance(Util.java:384) ~[perfios-database-migrator.jar:?]
     [java]     at com.MysqL.jdbc.sqlError.createsqlException(sqlError.java:1054) ~[perfios-database-migrator.jar:?]
     [java]     at com.MysqL.jdbc.MysqLIO.checkerrorPacket(MysqLIO.java:3566) ~[perfios-database-migrator.jar:?]
     [java]     at com.MysqL.jdbc.MysqLIO.checkerrorPacket(MysqLIO.java:3498) ~[perfios-database-migrator.jar:?]
     [java]     at com.MysqL.jdbc.MysqLIO.sendCommand(MysqLIO.java:1959) ~[perfios-database-migrator.jar:?]
     [java]     at com.MysqL.jdbc.MysqLIO.sqlQueryDirect(MysqLIO.java:2113) ~[perfios-database-migrator.jar:?]
     [java]     at com.MysqL.jdbc.ConnectionImpl.execsql(ConnectionImpl.java:2568) ~[perfios-database-migrator.jar:?]
     [java]     at com.MysqL.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2113) ~[perfios-database-migrator.jar:?]
     [java]     at com.MysqL.jdbc.PreparedStatement.execute(PreparedStatement.java:1364) ~[perfios-database-migrator.jar:?]
     [java]     at org.jooq.tools.jdbc.DefaultPreparedStatement.execute(DefaultPreparedStatement.java:214) ~[jooq-3.14.0.jar:?]
     [java]     at org.jooq.impl.Tools.executeStatementAndGetFirstResultSet(Tools.java:4186) ~[jooq-3.14.0.jar:?]
     [java]     at org.jooq.impl.AbstractResultQuery.execute(AbstractResultQuery.java:279) ~[jooq-3.14.0.jar:?]
     [java]     at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:375) ~[jooq-3.14.0.jar:?]
     [java]     ... 20 more

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)