title: Apache Ignite Spring Data Extension Documentation Missing Setup Step For Thin Clients
body: <p>Following <a href="https://ignite.apache.org/docs/latest/extensions-and-integrations/spring/spring-data" rel="nofollow noreferrer">the documentation</a> and connect to Apache Ignite with thin client, I ran into the following error:</p>
  <pre><code>Caused by: org.apache.ignite.client.ClientException: Ignite failed to process request [6]: 50000: Failed to find SQL table for type: TestData (server status code [1])
      at org.apache.ignite.internal.client.thin.TcpClientChannel.convertException(TcpClientChannel.java:359) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.client.thin.TcpClientChannel.receive(TcpClientChannel.java:319) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.client.thin.TcpClientChannel.service(TcpClientChannel.java:237) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.client.thin.ReliableChannel.lambda$service$1(ReliableChannel.java:167) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:764) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:731) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.client.thin.ReliableChannel.service(ReliableChannel.java:167) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.client.thin.GenericQueryPager.next(GenericQueryPager.java:93) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.client.thin.ClientQueryCursor$1.nextPage(ClientQueryCursor.java:93) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.client.thin.ClientQueryCursor$1.hasNext(ClientQueryCursor.java:76) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.springdata.repository.query.IgniteRepositoryQuery$QueryCursorWrapper$1.hasNext(IgniteRepositoryQuery.java:938) ~[ignite-spring-data-ext-2.0.0.jar:2.0.0]
      at org.apache.ignite.springdata.repository.query.IgniteRepositoryQuery.transformQueryCursor(IgniteRepositoryQuery.java:621) ~[ignite-spring-data-ext-2.0.0.jar:2.0.0]
      at org.apache.ignite.springdata.repository.query.IgniteRepositoryQuery.execute(IgniteRepositoryQuery.java:360) ~[ignite-spring-data-ext-2.0.0.jar:2.0.0]
      at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.7.2.jar:2.7.2]
      at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.7.2.jar:2.7.2]
      at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.7.2.jar:2.7.2]
      at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.7.2.jar:2.7.2]
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.22.jar:5.3.22]
      at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.7.2.jar:2.7.2]
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.22.jar:5.3.22]
      at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.22.jar:5.3.22]
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.22.jar:5.3.22]
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.22.jar:5.3.22]
      at com.sun.proxy.$Proxy40.findById(Unknown Source) ~[na:na]
      at com.example.ignitespringdatalocal.IgniteSpringDataLocalApplication.run(IgniteSpringDataLocalApplication.java:33) [classes/:na]
      at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:771) [spring-boot-2.7.3.jar:2.7.3]
      ... 5 common frames omitted
  Caused by: org.apache.ignite.internal.client.thin.ClientServerError: Ignite failed to process request [6]: 50000: Failed to find SQL table for type: TestData (server status code [1])
      at org.apache.ignite.internal.client.thin.TcpClientChannel.processNextMessage(TcpClientChannel.java:449) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.client.thin.TcpClientChannel.onMessage(TcpClientChannel.java:194) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnection.onMessage(GridNioClientConnection.java:86) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientListener.onMessage(GridNioClientListener.java:56) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientListener.onMessage(GridNioClientListener.java:30) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.util.nio.GridNioCodecFilter.onMessageReceived(GridNioCodecFilter.java:116) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:3734) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.util.nio.GridNioFilterChain.onMessageReceived(GridNioFilterChain.java:175) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:1211) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2508) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2273) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1910) ~[ignite-core-2.13.0.jar:2.13.0]
      at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125) ~[ignite-core-2.13.0.jar:2.13.0]
      at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_161]
  </code></pre>
  <p>After Googling, I found <a href="https://www.gridgain.com/docs/tutorials/spring/spring-ignite-tutorial" rel="nofollow noreferrer">this tutorial</a> which solved my problem - when using thin client, I need to prepare my data model's SQL DDL script and run with sqlline tool; where the same can be skipped for thick clients when using CacheConfiguration.setIndexedTypes().</p>
  <p>Hence, I am hoping the Apache Ignite team can include this step (or more detailed/correct steps as this is just what I found that solved my problem as a first time learner).</p>
  <p>Thanks a lot!</p>