title: The column name X was not found in this ResultSet - JPA
body: <p>So I have this Company entity, I'm having an error every time I add a company.
  I'm using PostgreSQL for my database and I use double quote literals to map the columns of the table in pascalcase.</p>
  
  <p>Company entity:</p>
  
  <pre><code>@Entity
  @XmlRootElement
  public class Company {
      @Id
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      @Column(name="\"Id\"")
      private Long id;
      @Column(name="\"Name\"")
      private String name;
      public Long getId() {
          return id;
      }
      public void setId(Long id) {
          this.id = id;
      }
      public String getName() {
          return name;
      }
      public void setName(String name) {
          this.name = name;
      }
  }
  </code></pre>
  
  <p>Company Endpoint:</p>
  
  <pre><code>@Stateless
  @Path("/companies")
  public class CompanyEndpoint {
      @PersistenceContext(unitName = "primary")
      private EntityManager em;
  
      @POST
      @Consumes("application/json")
      public Response create(Company entity) {
          em.persist(entity);
          return Response.created(
                  UriBuilder.fromResource(CompanyEndpoint.class)
                          .path(String.valueOf(entity.getId())).build()).build();
      }
  
      @DELETE
      @Path("/{id:[0-9][0-9]*}")
      public Response deleteById(@PathParam("id") Long id) {
          Company entity = em.find(Company.class, id);
          if (entity == null) {
              return Response.status(Status.NOT_FOUND).build();
          }
          em.remove(entity);
          return Response.noContent().build();
      }
  
      @GET
      @Path("/{id:[0-9][0-9]*}")
      @Produces("application/json")
      public Response findById(@PathParam("id") Long id) {
          TypedQuery&lt;Company&gt; findByIdQuery = em
                  .createQuery(
                          "SELECT DISTINCT c FROM Company c WHERE c.id = :entityId ORDER BY c.id",
                          Company.class);
          findByIdQuery.setParameter("entityId", id);
          Company entity;
          try {
              entity = findByIdQuery.getSingleResult();
          } catch (NoResultException nre) {
              entity = null;
          }
          if (entity == null) {
              return Response.status(Status.NOT_FOUND).build();
          }
          return Response.ok(entity).build();
      }
  
      @GET
      @Produces("application/json")
      public List&lt;Company&gt; listAll(@QueryParam("start") Integer startPosition,
              @QueryParam("max") Integer maxResult) {
          TypedQuery&lt;Company&gt; findAllQuery = em
                  .createQuery("SELECT DISTINCT c FROM Company c ORDER BY c.id",
                          Company.class);
          if (startPosition != null) {
              findAllQuery.setFirstResult(startPosition);
          }
          if (maxResult != null) {
              findAllQuery.setMaxResults(maxResult);
          }
          final List&lt;Company&gt; results = findAllQuery.getResultList();
          return results;
      }
  
      @PUT
      @Path("/{id:[0-9][0-9]*}")
      @Consumes("application/json")
      public Response update(@PathParam("id") Long id, Company entity) {
          if (entity == null) {
              return Response.status(Status.BAD_REQUEST).build();
          }
          if (id == null) {
              return Response.status(Status.BAD_REQUEST).build();
          }
          if (!id.equals(entity.getId())) {
              return Response.status(Status.CONFLICT).entity(entity).build();
          }
          if (em.find(Company.class, id) == null) {
              return Response.status(Status.NOT_FOUND).build();
          }
          try {
              entity = em.merge(entity);
          } catch (OptimisticLockException e) {
              return Response.status(Response.Status.CONFLICT)
                      .entity(e.getEntity()).build();
          }
  
          return Response.noContent().build();
      }
  }
  </code></pre>
  
  <p>The last I'm seeing is <code>org.postgresql.util.PSQLException: The column name "Id" was not found in this ResultSet.</code></p>
  
  <p>Can someone explain what is wrong in my code. Thank you in advance.</p>
  
  <p>Full sever log:</p>
  
  <pre><code>2017-02-09 13:37:40,650 ERROR [io.undertow.request] (default task-15) UT005023: Exception handling request to /test/rest/companies: org.jboss.resteasy.spi.UnhandledException: javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not insert: [test.model.Company]
  
      at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:77)
  
      at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:220)
  
      at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:175)
  
      at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:418)
  
      at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:209)
  
      at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
  
      at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
  
      at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
  
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
  
      at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
  
      at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
  
      at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
  
      at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
  
      at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
  
      at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
  
      at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
  
      at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
  
      at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
  
      at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
  
      at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
  
      at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
  
      at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
  
      at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
  
      at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
  
      at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
  
      at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
  
      at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
  
      at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
  
      at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
  
      at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
  
      at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
  
      at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
  
      at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
  
      at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
  
      at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
  
      at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
  
      at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
  
      at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
  
      at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
  
      at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
  
      at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
  
      at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
  
      at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
  
      at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805)
  
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  
      at java.lang.Thread.run(Thread.java:745)
  
  Caused by: javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not insert: [test.model.Company]
  
      at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:187)
  
      at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:277)
  
      at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:327)
  
      at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
  
      at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636)
  
      at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
  
      at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
  
      at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198)
  
      at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
  
      at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)
  
      at org.jboss.tools.examples.rest.CompanyEndpoint$$$view398.create(Unknown Source)
  
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  
      at java.lang.reflect.Method.invoke(Method.java:498)
  
      at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)
  
      at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
  
      at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
  
      at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236)
  
      at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:402)
  
      ... 43 more
  
  Caused by: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not insert: [test.model.Company]
  
      at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1692)
  
      at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1602)
  
      at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1608)
  
      at org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1152)
  
      at org.jboss.as.jpa.container.AbstractEntityManager.persist(AbstractEntityManager.java:580)
  
      at org.jboss.tools.examples.rest.CompanyEndpoint.create(CompanyEndpoint.java:37)
  
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  
      at java.lang.reflect.Method.invoke(Method.java:498)
  
      at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
  
      at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82)
  
      at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93)
  
      at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
  
      at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:64)
  
      at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
  
      at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
  
      at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
  
      at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275)
  
      ... 87 more
  
  Caused by: org.hibernate.exception.SQLGrammarException: could not insert: [test.model.Company]
  
      at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106)
  
      at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
  
      at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109)
  
      at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:49)
  
      at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2803)
  
      at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3374)
  
      at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:81)
  
      at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:619)
  
      at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:273)
  
      at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:254)
  
      at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:299)
  
      at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:317)
  
      at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:272)
  
      at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:178)
  
      at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:109)
  
      at org.hibernate.jpa.event.internal.core.JpaPersistEventListener.saveWithGeneratedId(JpaPersistEventListener.java:67)
  
      at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:189)
  
      at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:132)
  
      at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:58)
  
      at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:775)
  
      at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:748)
  
      at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:753)
  
      at org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1146)
  
      ... 118 more
  
  Caused by: org.postgresql.util.PSQLException: The column name "Id" was not found in this ResultSet.
  
      at org.postgresql.jdbc.PgResultSet.findColumn(PgResultSet.java:2591)
  
      at org.postgresql.jdbc.PgResultSet.getLong(PgResultSet.java:2489)
  
      at org.jboss.jca.adapters.jdbc.WrappedResultSet.getLong(WrappedResultSet.java:1583)
  
      at org.hibernate.id.IdentifierGeneratorHelper.get(IdentifierGeneratorHelper.java:138)
  
      at org.hibernate.id.IdentifierGeneratorHelper.getGeneratedIdentity(IdentifierGeneratorHelper.java:73)
  
      at org.hibernate.dialect.identity.GetGeneratedKeysDelegate.executeAndExtract(GetGeneratedKeysDelegate.java:61)
  
      at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:42)
  
      ... 137 more
  </code></pre>