Feature: support of @Transactional
I'm looking forward to when it will come true
I concur. When you have a business logic, only one Exception is enough to corrupt your data.
I strongly urge that this feature be added.
Please implement it. I can't use this database without this. Doing transaction by template is really messy.
Any news here? I found that ArangoDB 3.5+ and java driver 6.0.0+ supports stream transaction. Is this feature not enough to support transaction of Spring data? (e.g. @Transactional) Stream transactions
I want to try make this feature if it possible. I would appreciate any ideas or advices. Thank you.
@wildroco thanks for pinging! I will look into it and update this thread about any progress. Also consider that support for new Spring Reactive Transactions (https://spring.io/blog/2019/05/16/reactive-transactions-with-spring) will be only possible once the upcoming ArangoDB reactive driver will be completed. You can follow the developments here: https://github.com/arangodb/arangodb-java-driver/tree/next
@rashtao, thank you. Can you give some expected schedules? I have near production service with ArangoDB. I want to add transactions to the service before launching. The service has already some @Transactional functions with Other DB(MariaDB, Kafka, ..). It will be so happy if ArangoDB can play with then seamlessly :)
@wildroco , the work has not been planned yet, so it is hard to make any estimation. For urgent production needs I would recommend you directly using streaming transactions from the driver API (accessible via arangoTemplate.driver().
No update on this still?
@rashtao Do we have any update on it ?
We have it in our plans for 2022.
Great, looking forward to it. Do you already know how this will work? Will you collect all inserts/updates and execute them when the transaction ends? We need this feature as well and will have to build a workaround until this is released. It would be nice if the workaround is close to how you will develop this so we have little work to do when integrating your change.
It will be based on Stream Transactions https://www.arangodb.com/docs/stable/http/transaction-stream-transaction.html , so requests could be sent immediately and not needed to be collected for later execution.
We really need this feature and would like to help out. If we can do anything to speed up development please reach out to me.
@rashtao as we have an urgent need, I created a PR for this feature. Let me know if you have any comments or concerns.
l
Any news regarding this feature request?
I guess alternative to consider for transaction assurance is this: https://university.arangodb.com/courses/java-driver-tutorial-v7/lessons/import-graph-data-with-stream-transactions/
not proven yet in my case.
@lukaszkowalik
Currently, to work around this you can use the underlying Java driver directly (ArangoOperations#driver()), which offers support to stream transactions (see https://www.javadoc.io/doc/com.arangodb/arangodb-java-driver/6.25.0/index.html).
To use Spring Data mappings, you can invoke the conversions to/from VPackSlice manually, see:
https://www.arangodb.com/docs/stable/drivers/spring-data-reference-mapping.html#invoking-conversion-manually
@rashtao this pr is a year already. why no approve it https://github.com/arangodb/spring-data/pull/249
@bobaikato
Due to internal prioritization, this has not been included in the scope of https://github.com/arangodb/spring-data/releases/tag/v4.0.0
Also there are still work to do in order to address https://github.com/arangodb/spring-data/pull/249#pullrequestreview-1253121370