Hello,

Thank you all for the information you have provided so far.

Can you kindly recommend some kind of guide to help with migration from 2.x.x 
to 3.x.x?

So that I can make the necessary changes.

Best Regards | Com os melhores cumprimentos,
João Lola
________________________________
De: Stephen Darlington <sdarling...@apache.org>
Enviado: 23 de abril de 2025 09:03
Para: user@ignite.apache.org <user@ignite.apache.org>
Assunto: Re: Apache 2.X.X upgraded to 3.X.X

The Spring Boot auoconfigurer exists: 
https://mvnrepository.com/artifact/org.apache.ignite/spring-boot-ignite-client-autoconfigure

On Tue, 22 Apr 2025 at 23:02, Raj 
<rajkumar...@gmail.com<mailto:rajkumar...@gmail.com>> wrote:
Besides service grid, other features like continuous query, cache interceptors 
(similar to DB triggers), user defined sql functions and ignite extensions for 
spring boot client autoconfigs, CDC Kafka streamers etc seem to be missing in 
Ignite 3 but available in Ignite 2.




On Tue, Apr 22, 2025, 8:17 AM Stephen Darlington 
<sdarling...@apache.org<mailto:sdarling...@apache.org>> wrote:
With the exception of the Service Grid, it's not that these features are no 
longer available. Rather, they are either configured differently or are no 
longer relevant. For example, CacheAtomicityMode is no longer needed as all 
tables are now transactional. Indeed, it supports SQL transactions, which 
Ignite 2 couldn't do.

On Tue, 22 Apr 2025 at 10:37, João Lola 
<joao.l...@hexa-consulting.pt<mailto:joao.l...@hexa-consulting.pt>> wrote:
Hello Stephen,

Thanks for your reply, I am currently trying to adapt apache ignite 3.0.0 with 
my spring application I notice some features are no longer available.

Like these bellow:


  *
org.apache.ignite.services.Service;
  *
org.apache.ignite.services.ServiceContext;
  *
org.apache.ignite.configuration.CacheConfiguration;
  *
org.apache.ignite.cluster.ClusterNode;
  *
org.apache.ignite.lang.IgnitePredicate;
  *
import org.apache.ignite.cache.CacheAtomicityMode;
  *
import org.apache.ignite.cache.CacheMode;
  *
import org.apache.ignite.cache.CacheWriteSynchronizationMode;
  *
import org.apache.ignite.IgniteException;
  *
import org.apache.ignite.lifecycle.LifecycleBean;
  *
import org.apache.ignite.lifecycle.LifecycleEventType;
  *
import org.apache.ignite.events.Event;
  *
import org.apache.ignite.events.EventType;
  *
import org.apache.ignite.lang.IgnitePredicate;

Best Regards | Com os melhores cumprimentos,
João Lola
________________________________
De: Stephen Darlington <sdarling...@apache.org<mailto:sdarling...@apache.org>>
Enviado: 22 de abril de 2025 10:28
Para: user@ignite.apache.org<mailto:user@ignite.apache.org> 
<user@ignite.apache.org<mailto:user@ignite.apache.org>>
Assunto: Re: Apache 2.X.X upgraded to 3.X.X

What do you mean by "full spring support"? What functionality are you looking 
for? Ignite 3 no longer uses Spring for its configuration.

On Tue, 22 Apr 2025 at 09:55, João Lola 
<joao.l...@hexa-consulting.pt<mailto:joao.l...@hexa-consulting.pt>> wrote:
Hello Raj,

Thank you so much for explanation regarding this question.

I have another question for you:

Does apache ignite 3.0.0 have full spring support or will it have in the 
future? Because ignite-spring only goes up to 2.17.

Best Regards | Com os melhores cumprimentos,
João Lola
________________________________
De: Raj <rajkumar...@gmail.com<mailto:rajkumar...@gmail.com>>
Enviado: 22 de abril de 2025 02:13
Para: user@ignite.apache.org<mailto:user@ignite.apache.org> 
<user@ignite.apache.org<mailto:user@ignite.apache.org>>
Assunto: Re: Apache 2.X.X upgraded to 3.X.X

I do see the annotations supported in Ignite 3 in addition to the 
tabledescriptor builder API

https://ignite.apache.org/docs/ignite3/latest/developers-guide/java-to-tables

Please check @Table, @Column and other  annotations that are located in the 
org.apache.ignite.catalog.annotations package in order to migrate from Ignite 2 
annotations.


On Mon, Apr 21, 2025, 8:21 PM ypeng 
<yp...@t-online.de<mailto:yp...@t-online.de>> wrote:
In Apache Ignite 3.0.0, the `@QuerySqlField` annotation has indeed been
removed as part of a major architectural overhaul. This significant
change affects how you define queryable fields in your domain models.

For Ignite 3.0.0, the recommended approach is to use the new Table API
instead of annotations. In this new model, you define tables
programmatically rather than using annotations on your Java classes.

Here's how you can transition from the annotation-based approach to the
new Table API:

1. Instead of annotating fields with `@QuerySqlField`, you'll now create
table definitions using `TableDescriptor` and the fluent API.

2. Basic example of creating a table in Ignite 3.0.0:

```java
TableDescriptor table = TableDescriptor.builder()
     .name("MyTable")
     .addColumn("id", ColumnType.INT32, true)  // primary key
     .addColumn("name", ColumnType.STRING)
     .addColumn("age", ColumnType.INT32)
     .build();

tables.createTable(table).get();
```

3. For working with the data, you'll use the Table API methods for CRUD
operations rather than putting/getting annotated objects.

The shift from 2.x to 3.0.0 is substantial and requires rethinking your
data model approach. The new version moves away from the "object in the
cache" model toward a more traditional table-based database approach.

If you have a significant investment in the annotation-based approach
and need to maintain compatibility, you might consider:

1. Staying on Ignite 2.x for the time being
2. Creating an abstraction layer in your code to isolate the
Ignite-specific parts, making future migration easier
3. Gradually migrating components to use the new Table API while
maintaining the old components on 2.x

The Ignite 3.0 documentation provides comprehensive guidance on the new
Table API and migration strategies from 2.x.

João Lola:
> I am currently using Apache Ignite 2.17.0 on a project I am working on,
> I am interested in upgrading to 3.0.0. But I notice query annotations,
> e.g @QuerySqlField are no longer available as of 3.0.0, so my question
> is what can I use in 3.0.0 to replace it if available, if not what is
> recommend to use instead?

Reply via email to