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>
Enviado: 22 de abril de 2025 02:13
Para: user@ignite.apache.org <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