I've been on spring projects for quiet a while and i almost never needed to add @Transactional annotation when dealing with databases. But i already have theoretical knowledge on how transaction are managed in spring boot. I am now wondering whether i was doing wrong when not adding a @Transactional with methods dealing with database.
Does adding @Transactional annotation to method is a must when making database calls?
68 Views Asked by santi cazorla At
1
There are 1 best solutions below
Related Questions in SPRING-BOOT
- Multi Tenancy in Spring - Partitioned Data Approach
- I have created a spring boot application with spring data JPA, Rest ,oracle and i am getting this ORA-00933: SQL command not properly ended
- Springboot: How to get an entity optional property and check null?
- How to create jasper report in spring boot rest api with jpa
- JSON Body is Not Passing Certain Strings
- Unresolved reference error is showing up after adding the dgs codegen plugin successfully
- Transaction silently rolled back
- JPA buddy error when generating JPA Entities from DB
- Migrating Spring Boot 2 to 3 throws org.glassfish.jaxb.runtime.v2.runtime.IllegalAnnotationsException: 3 counts of IllegalAnnotationExceptions
- Hibernate SQL Error: Missing FROM-clause entry for table "th1_1"
- Appwrite and / or Spring Boot Backend
- Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. I'm using Postgresql
- Driver com.microsoft.sqlserver.jdbc.SQLServerDriver claims to not accept jdbcUrl, ${SPRING_DATASOURCE_URL}: GitHub Actions
- springboot class org.hibernate.mapping.Bag cannot be cast to class org.hibernate.mapping.SimpleValue
- Spring security causing 404 with message "No static resource login"
Related Questions in TRANSACTIONS
- How to design the file operation interface involving status and transactions?
- Internal events cannot be consumed in spring boot. Only when using Kafka Consume
- How do you categorize a pending transaction immediately after making a purchase and have it save?
- Spring JPA + Hibernate + Rest services + long time transactions
- How to Identify Specific Transaction Anomalies in a Given Schedule?
- When does shared and exclusive locks are acquired and released in a MySql transactions?
- How to write a reusable DB transaction wrapper?
- "No data" after sending tx Jupiter Swap Python
- Perform multiple Identity actions in a transaction
- Running a program on different computers with different users that access a central database simultaneously - VB.NET XAMPP/MySQL
- Proper way to implement transactional HOTP?
- Transactional role in Java Spring Boot
- Is there a way of increasing MAX_INTEGER in web3.js
- Single transaction, multiple service calls to Entity Framework updating database
- Saving to Reactive Redis and Postgres in a single transaction
Related Questions in SPRING-TRANSACTIONS
- Does a transaction occur in this case?
- Already value [datasource.ConnectionHolder@6b144bd8] for key [datasource.DriverManagerDataSource@56739ee9] bound to thread [main]
- Transactional role in Java Spring Boot
- NullPointerException when using @Transactional with Spring Data Redis
- Why the @Transactional annotation not working
- Javax.persistence.TransactionRequiredException: Executing an update/delete query - Something wrong with JpaTransactionManager bean?
- Spring JPA Concurrency Transactional or Lock
- Spring boot transaction hanging if two transactions are updating the same row
- Issues with Dynamic method calling after migrating to springboot 3
- Couldn't read committed data in TransactionalEventListener
- How to do self injection Spring Boot 3+, in order to pass through proxy and apply transactional behavior
- How to enable transaction logging in a Springboot&MyBatis project?
- What's the best way to make sure a transactional method does not propagate to a readonly transactional method
- Spring @Transactional with timeoutString value from a configuration property bean
- Microservices REST call and database transaction
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Answers giving here should fill you in as to why @Transactional can be greatly helpful.
Basically, it makes it so that every database call made under the annotation are put in the same transaction. The helpful part is that if at any point during the transaction an error is thrown, all the previously data modification made will be reverted, preventing incomplete data being inserted into the database.
So, to answer your question, unless all your call made to modify data in the database are autonomous, you should add @Transactional. It is likely that adding @Transactional will prevent some bad data in the futur.