2016-10-21 7 views
0

私はJOOQから始めています。 EclipseのGoogle App Engineで実行しています。コード生成はうまくいったが、これを試してみるとcreate.select().from(CLIENT_MASTER).fetch();というエラーが出る。なぜJOOQは返されたデータセット全体をDateに変換しようとしていますか?

org.jooq.exception.DataAccessException: SQL [select `admin_kpi`.`client_master`.`client_id`, `admin_kpi`.`client_master`.`first_name`, `admin_kpi`.`client_master`.`last_name`, `admin_kpi`. 
ASASD2FDFDWhat is your name? abcdedsad0PinnacleA3Z2UiBLQsCgSDh 
210.89.56.250active2013-11-28 14:52:48enableyadmin_pinnacle_mr123456789123122 
2014-12-30 
0000-00-00310' can not be represented as java.sql.Date 
    at org.jooq.impl.Tools.translate(Tools.java:1941) 
    at org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:659) 
    at org.jooq.impl.CursorImpl$CursorIterator.fetchOne(CursorImpl.java:1556) 
    at org.jooq.impl.CursorImpl$CursorIterator.hasNext(CursorImpl.java:1507) 
    at org.jooq.impl.CursorImpl.fetch(CursorImpl.java:329) 
    at org.jooq.impl.CursorImpl.fetch(CursorImpl.java:282) 
    at org.jooq.impl.AbstractResultQuery.execute(AbstractResultQuery.java:282) 
    at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:348) 
    at org.jooq.impl.AbstractResultQuery.fetch(AbstractResultQuery.java:312) 
    at org.jooq.impl.SelectImpl.fetch(SelectImpl.java:2705) 
    at com.cbcdashboard.live.DailyReportServlet.doGet(DailyReportServlet.java:33) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) 
    at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:128) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366) 
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349) 
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
    at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:95) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:508) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 
Caused by: java.sql.SQLException: Value '1MrPinnacleMRc-4 yashonandan parkamericaVadodara5390016 1323131232mr 
ASASD2FDFDWhat is your name? abcdedsad0PinnacleA3Z2UiBLQsCgSDh 
210.89.56.250active2013-11-28 14:52:48enableyadmin_pinnacle_mr123456789123122 
2014-12-30 
0000-00-00310' can not be represented as java.sql.Date 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1056) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) 
    at com.mysql.jdbc.ResultSetRow.getDateFast(ResultSetRow.java:134) 
    at com.mysql.jdbc.BufferRow.getDateFast(BufferRow.java:698) 
    at com.mysql.jdbc.ResultSetImpl.getDate(ResultSetImpl.java:2108) 
    at com.mysql.jdbc.ResultSetImpl.getDate(ResultSetImpl.java:2060) 
    at org.jooq.impl.CursorImpl$CursorResultSet.getDate(CursorImpl.java:709) 
    at org.jooq.impl.DefaultBinding.getDate(DefaultBinding.java:1972) 
    at org.jooq.impl.DefaultBinding.get(DefaultBinding.java:1349) 
    at org.jooq.impl.CursorImpl$CursorIterator$CursorRecordInitialiser.setValue(CursorImpl.java:1640) 
    at org.jooq.impl.CursorImpl$CursorIterator$CursorRecordInitialiser.operate(CursorImpl.java:1611) 
    at org.jooq.impl.CursorImpl$CursorIterator$CursorRecordInitialiser.operate(CursorImpl.java:1576) 
    at org.jooq.impl.RecordDelegate.operate(RecordDelegate.java:128) 
    at org.jooq.impl.CursorImpl$CursorIterator.fetchOne(CursorImpl.java:1540) 
    ... 45 more 

すべてのフィールドから返されたデータを取得し、文字列全体をjava.sql.Dateに変換しようとしているようですね。誰かが私が間違っていることを見ていますか? JOOQクラスを作成するための

コード

try (Connection connection = getConnection()) { 
     DSLContext create = DSL.using(connection, SQLDialect.MYSQL); 
     Result<Record> results = create.select().from(CLIENT_MASTER).fetch(); 
     resp.setContentType("text/html"); 
     PrintWriter writer = resp.getWriter(); 
     for (Record result : results) { 
      writer.println(result.getValue(CLIENT_MASTER.COMPANY)); 
     } 
    } catch (SQLException | InstantiationException | IllegalAccessException | ClassNotFoundException e) { 
     logger.log(Level.SEVERE, "Failed to connect to mysql", e); 
    } 

CREATE TABLE `client_master` (
    `client_id` int(11) NOT NULL AUTO_INCREMENT, 
    `first_name` varchar(255) NOT NULL, 
    `last_name` varchar(255) NOT NULL, 
    `company` varchar(255) NOT NULL, 
    `address1` varchar(255) NOT NULL, 
    `address2` varchar(255) NOT NULL, 
    `city` varchar(255) NOT NULL, 
    `state` varchar(255) NOT NULL, 
    `country` varchar(255) NOT NULL, 
    `zipcode` varchar(50) NOT NULL, 
    `phone_number` varchar(50) NOT NULL, 
    `group_member` varchar(255) NOT NULL, 
    `user_name` varchar(255) NOT NULL, 
    `email` varchar(255) NOT NULL, 
    `password` varchar(255) NOT NULL, 
    `accountno` varchar(255) NOT NULL, 
    `security_que` varchar(255) NOT NULL, 
    `security_ans` varchar(255) NOT NULL, 
    `payment` varchar(255) NOT NULL, 
    `store` text, 
    `inventory` enum('xx','xx') NOT NULL DEFAULT 'xx', 
    `activation_code` varchar(255) NOT NULL, 
    `ip_address` text NOT NULL, 
    `status` enum('active','inactive') NOT NULL, 
    `register_date` datetime NOT NULL, 
    `enable_desable` enum('enable','desable') NOT NULL, 
    `is_delete` varchar(50) NOT NULL, 
    `data_base` varchar(255) NOT NULL, 
    `secret_id` varchar(255) NOT NULL, 
    `licence_id` varchar(255) NOT NULL, 
    `tokon_no` varchar(255) NOT NULL, 
    `exp_date` date NOT NULL, 
    `c_token` varchar(255) NOT NULL, 
    `sub_type` varchar(20) NOT NULL, 
    `pac_exp_date` date NOT NULL, 
    `pac_amount` varchar(20) NOT NULL, 
    `act_store` varchar(255) NOT NULL, 
    `def_store` varchar(255) NOT NULL, 
    `is_full_sync` enum('0','1','2','3') NOT NULL DEFAULT '0', 
    `eng_flag` enum('0','1') NOT NULL DEFAULT '0', 
    `upg_flag` enum('0','1') NOT NULL DEFAULT '0', 
    PRIMARY KEY (`client_id`) 
) ENGINE=InnoDB AUTO_INCREMENT=418 DEFAULT CHARSET=latin1; 

XMLファイル:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<configuration xmlns="http://www.jooq.org/xsd/jooq-codegen-3.8.0.xsd"> 
    <!-- Configure the database connection here --> 
    <jdbc> 
    <driver>com.mysql.jdbc.Driver</driver> 
    <url>jdbc:mysql://xx.xx.xx.xx:3306/admin_kpi</url> 
    <user>xx</user> 
    <password>xx</password> 
    </jdbc> 

    <generator> 
    <name>org.jooq.util.JavaGenerator</name> 

    <database> 
     <name>org.jooq.util.mysql.MySQLDatabase</name> 
     <inputSchema>admin_kpi</inputSchema> 
     <includes>.*</includes> 
     <excludes></excludes> 
    </database> 

    <target> 
     <packageName>xxxxx</packageName> 
     <directory>xxx</directory> 
    </target> 
    </generator> 
</configuration> 
+0

使用したコードと完全なスタックトレースを表示してください –

+0

大きなコードスニペットと完全なスタックトレースを追加 – Stinky

+0

'CLIENTMASTER'に対して生成された' TableImpl'実装を投稿することはできますか?どのような特定の列がこの問題を引き起こしていますか?いずれの場合でも、データベースから実際に必要な唯一の列であれば、 'CLIENT_MASTER.COMPANY'を選択する必要があります –

答えて

0

私は同じ問題を抱えていたと私は、この動作の理由は0000-00-00ある突き止め日付欄の値としてconn.getZeroDateTimeBehavior() == ConnectionPropertiesImpl.ZERO_DATETIME_BEHAVIOR_EXCEPTIONとなります。

関連する問題