Skip to content

feat(spring-data): add tarantool-spring-data-40 module#69

Merged
nickkkccc merged 7 commits intomasterfrom
add-spring-data-40
Apr 10, 2026
Merged

feat(spring-data): add tarantool-spring-data-40 module#69
nickkkccc merged 7 commits intomasterfrom
add-spring-data-40

Conversation

@nickkkccc
Copy link
Copy Markdown
Contributor

@nickkkccc nickkkccc commented Apr 7, 2026

I haven't forgotten about:

  • Tests
  • Changelog
  • Documentation
    • JavaDoc was written
  • Commit messages comply with the guideline
  • Cleanup the code for review. See checklist

Related issues:

@nickkkccc nickkkccc marked this pull request as draft April 7, 2026 14:55
@nickkkccc nickkkccc marked this pull request as ready for review April 7, 2026 14:59
@nickkkccc nickkkccc marked this pull request as draft April 7, 2026 15:00
@nickkkccc nickkkccc requested review from ArtDu and dkasimovskiy April 7, 2026 15:45
@nickkkccc nickkkccc self-assigned this Apr 7, 2026
@nickkkccc nickkkccc marked this pull request as ready for review April 7, 2026 15:46
@nickkkccc nickkkccc force-pushed the add-spring-data-40 branch from 2101e4a to 97f2f48 Compare April 9, 2026 14:14
@nickkkccc nickkkccc requested a review from dkasimovskiy April 9, 2026 14:14
@ArtDu
Copy link
Copy Markdown
Contributor

ArtDu commented Apr 10, 2026

А то что Jackson 3 не влияет на работу msgpack jackson?

@ArtDu
Copy link
Copy Markdown
Contributor

ArtDu commented Apr 10, 2026

А это валидно?

🔴 Критично: Property Accessor для Composite ID

Мы используем свой CompositeIdPropertyAccessor, который работает через Reflection (ReflectionUtils.getField/setField).

В Spring Data 4.0 появилась поддержка пред-сгенерированных accessor'ов для:

  • Лучшей производительности (нет runtime-генерации)
  • Поддержки GraalVM Native Image

Наш код (CompositeIdPropertyAccessor.java:82-86):
ReflectionUtils.makeAccessible(entityField);
ReflectionUtils.makeAccessible(compositeKeyField);
Object value = ReflectionUtils.getField(entityField, this.target);
ReflectionUtils.setField(compositeKeyField, compositeKey, value);

Это будет работать, но не оптимально для AOT/Native Image.

@ArtDu
Copy link
Copy Markdown
Contributor

ArtDu commented Apr 10, 2026

А это?

  1. Ahead of Time (AOT) Repositories ⚠️ ВАЖНО

Spring Data JPA, JDBC, MongoDB, Cassandra now ship with AOT repository support
Вопрос: Поддерживаем ли мы AOT-репозитории для Tarantool?

Что нужно: Реализация AotRepository или подобного для генерации кода репозиториев на этапе компиляции.

  1. Ahead of Time-generated Accessors ⚠️ ВАЖНО

Generated property accessors and entity instantiators... can be used in Graal Native images
Вопрос: Генерируем ли мы property accessors AOT-способом?

@nickkkccc
Copy link
Copy Markdown
Contributor Author

А это?

  1. Ahead of Time (AOT) Repositories ⚠️ ВАЖНО

Spring Data JPA, JDBC, MongoDB, Cassandra now ship with AOT repository support
Вопрос: Поддерживаем ли мы AOT-репозитории для Tarantool?

Что нужно: Реализация AotRepository или подобного для генерации кода репозиториев на этапе компиляции.

  1. Ahead of Time-generated Accessors ⚠️ ВАЖНО

Generated property accessors and entity instantiators... can be used in Graal Native images
Вопрос: Генерируем ли мы property accessors AOT-способом?

Нет, не поддерживаем. Старый вариант репозиториев совместим с новой версией 4.x

@nickkkccc
Copy link
Copy Markdown
Contributor Author

А это валидно?

🔴 Критично: Property Accessor для Composite ID

Мы используем свой CompositeIdPropertyAccessor, который работает через Reflection (ReflectionUtils.getField/setField).

В Spring Data 4.0 появилась поддержка пред-сгенерированных accessor'ов для:

  • Лучшей производительности (нет runtime-генерации)
  • Поддержки GraalVM Native Image

Наш код (CompositeIdPropertyAccessor.java:82-86):
ReflectionUtils.makeAccessible(entityField);
ReflectionUtils.makeAccessible(compositeKeyField);
Object value = ReflectionUtils.getField(entityField, this.target);
ReflectionUtils.setField(compositeKeyField, compositeKey, value);

Это будет работать, но не оптимально для AOT/Native Image.

Сейчас работает на рефлексии

@nickkkccc
Copy link
Copy Markdown
Contributor Author

А то что Jackson 3 не влияет на работу msgpack jackson?

Нет, 2.x и 3.x находятся в разных пакетах и даже артефактах, поэтому проблем нет.

@nickkkccc nickkkccc merged commit e5410a1 into master Apr 10, 2026
10 of 11 checks passed
@nickkkccc nickkkccc deleted the add-spring-data-40 branch April 10, 2026 10:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants