]
Steven Hawkins resolved TEIID-3872.
-----------------------------------
Fix Version/s: 9.0
8.12.5
8.13.2
(was: 8.13)
(was: 8.12.4)
Resolution: Done
The initial commit was incomplete. This one corrects:
that oracle should be marked as needing to use the column names to get the generated keys
ensured that generated keys were retrieved for both prepared and non prepared queries
ensured that generated keys were retrieved for preparedstatement.execute
Error with odata entity create with generated keys
--------------------------------------------------
Key: TEIID-3872
URL:
https://issues.jboss.org/browse/TEIID-3872
Project: Teiid
Issue Type: Bug
Components: JDBC Connector, Query Engine
Environment: MacOS X El Capitan, Teiid 8.12.2, Jbossdev studio, Oracle 11g
Reporter: Ivan Lucas Vargas
Assignee: Steven Hawkins
Fix For: 9.0, 8.12.5, 8.13.2
Forum thread:
https://developer.jboss.org/message/947527
When trying to insert a record thru odata2 request when the ID field is mapped as an
Oracle Sequence as described in the documentation as *<element
name>:SEQUENCE=<sequence name>.<sequence value>
*(https://docs.jboss.org/author/display/teiid812final/Oracle+Translator), the following
error occurs:
TEIID16013 Error occurred producing OData result.: java.lang.IllegalArgumentException:
Cannot infer EdmType for java type: oracle.sql.ROWID
at org.odata4j.core.OProperties.simple(OProperties.java:40)
[odata-core-0.8.10.jar:0.8.10]
at org.teiid.odata.ODataSQLBuilder.buildEntityKey(ODataSQLBuilder.java:678) [classes:]
at org.teiid.odata.TeiidProducer.createEntity(TeiidProducer.java:232) [classes:]
at
org.odata4j.producer.resources.EntitiesRequestResource.createEntity(EntitiesRequestResource.java:129)
[odata-core-0.8.10.jar:0.8.10]
at
org.odata4j.producer.resources.EntitiesRequestResource.createEntity(EntitiesRequestResource.java:116)
[odata-core-0.8.10.jar:0.8.10]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[rt.jar:1.8.0_45]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[rt.jar:1.8.0_45]
at java.lang.reflect.Method.invoke(Method.java:497) [rt.jar:1.8.0_45]
at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:168)
[resteasy-jaxrs-2.3.9.Final-redhat-7.jar:]
at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)
[resteasy-jaxrs-2.3.9.Final-redhat-7.jar:]
at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)
[resteasy-jaxrs-2.3.9.Final-redhat-7.jar:]
at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)
[resteasy-jaxrs-2.3.9.Final-redhat-7.jar:]
at
org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:541)
[resteasy-jaxrs-2.3.9.Final-redhat-7.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:523)
[resteasy-jaxrs-2.3.9.Final-redhat-7.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:125)
[resteasy-jaxrs-2.3.9.Final-redhat-7.jar:]
at
org.teiid.odata.ODataServletContainerDispatcher.service(ODataServletContainerDispatcher.java:118)
[classes:]
at org.teiid.odata.ODataServlet.service(ODataServlet.java:65) [classes:]
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)
[resteasy-jaxrs-2.3.9.Final-redhat-7.jar:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
[jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
[jbossweb-7.5.3.Final.jar:7.5.3.Final]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
[jbossweb-7.5.3.Final.jar:7.5.3.Final]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231)
[jbossweb-7.5.3.Final.jar:7.5.3.Final]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
[jbossweb-7.5.3.Final.jar:7.5.3.Final]
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:512)
[jbossweb-7.5.3.Final.jar:7.5.3.Final]
at
org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
[jboss-as-web-7.5.0.Final-redhat-15.jar:7.5.0.Final-redhat-15]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:150)
[jbossweb-7.5.3.Final.jar:7.5.3.Final]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
[jbossweb-7.5.3.Final.jar:7.5.3.Final]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
[jbossweb-7.5.3.Final.jar:7.5.3.Final]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
[jbossweb-7.5.3.Final.jar:7.5.3.Final]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:854)
[jbossweb-7.5.3.Final.jar:7.5.3.Final]
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
[jbossweb-7.5.3.Final.jar:7.5.3.Final]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926)
[jbossweb-7.5.3.Final.jar:7.5.3.Final]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_45]