Spring Data JPA [PRO] - How to connect Multiple Databases using Spring Boot | Multiple Datasources
Vložit
- čas přidán 5. 08. 2024
- In this Spring Data JPA tutorial, we will learn, How to connect Multiple Databases using Spring Boot. We will be using a MySQL database and a Postgres database and create datasources for the same. As we will be creating multiple datasources for our application, We also need to set up multiple EntityManager for our application as well. Not only that, this tutorial covers setting up multiple transaction managers for our entity managers and helps you link them using @EnableJpaRepositories annotation. Mark that this is an important spring data jpa annotation as it helps creating the Repository implementation.
We will pull all the above together by creating a spring boot application which will continuously push data to multiple databases. You can use the same in your real-time project irrespective of the databases you are using. (Incase you have a h2 /d2/oracle/sql server db)
Timestamp
------
00:00:00 - Sprig Data Jpa - Video Insights
00:03:45 - Spring Data jpa project setup
00:05:45 - The goal - Connect with Multiple databases
00:08:05 - Creating Product Entity
00:11:37 - Spring Data Jpa CrudRepository
00:18:18 - DatasourceProperties : Component walkthrough
00:19:52 - Setting up mysql datasource using application.properties
00:28:09 - Customising datasource properties
00:32:24 - Postgres datasource properties configuration
00:38:24 - spring boot @ConfgurationProperties - use case 1
00:44:46 - @Configuration with @Bean - use case 2
00:49:40 - DriverManagerDatasource vs DatasourceProperties’s initalizeDatasourceBuilder
00:57:02 - Multiple datasources in action with @Primary
01:13:19 - Setting up multiple entity managers
01:26:49 - @EnableJpaRepoistories : tech walkthrough
01:43:12 - Setting up multiple jpa transaction managers (PlatformTransctionManger)
01:54:55 - Success: Multiple datasource in action
01:56:58 - Best practice - @EnableTransactionManager
01:57:37 - [Test] check in data to multiple database with a spring boot app
02:00:37 - Outro
#springboot #springdatajpa #jpa #hibernate
For more free/paid courses visit
www.seleniumexpress.com
LINKS AND FREE LEARNING RESOURCES
========
Watch my new mock interview series for java developers
• Java interview questio...
Watch my new Hello spring boot series
• Spring Vs Spring Boot ...
Watch Spring boot Hot topics
• @Reposicotry Vs @Servi...
Java Interview / Question and Answer series
• Java collections inter...
Explain spring Bean Lifecycle
• REAL-TIME: Spring Bean...
spring core
• Spring framework tutor...
spring mvc
• Spring MVC course intr...
spring mvc intermediate
• [INTERMEDIATE] Spring ...
Spring JDBC
• Spring JDBC Course Pre...
spring live project
• #1 Build and Deploy A ...
SPRING SECURITY COURSE[NEW]
• Spring Security Course...
For more courses visit
www.seleniumexpress.com
Any time you are getting stuck with issues, Feel free to ask for support.
You can send mail to seleniumexpress@gmail.com
you can ping me on my Facebook page
/ seleniumexpress
Make sure to join my private Facebook page (Ask me here)
“SeleniumExpress - Support"
/ 187000222361579
you can ask for support in my website forum
www.seleniumexpress.com
Subscribe to my youtube channel
/ @seleniumexpress
Follow me on Insta
/ selenium_express
One of the best in depth explanations ever 🔥
Thank you 😊
Bhai bahut badhia lagila au easy explanation. . Thanks from ODISHA ❤
Great videos man! Unlike other tutorials, you go deep into Spring concepts and make things really clear. Congrats for the initiative!
2nd Half Done, Thanks for this informative video.
Appreciate your hard work and explaining meaning of the error messages at every step.
You are amazing... Not other word category suits you... You are incredible.
Extraordinary teaching thank u soo much for clear explanation . Keep giving more videos like this
Superb... Thanks, Abhilash for nicely explained it....
absolutely great video . i am learning a lot from your videos , thanks for sharing
Thanks Abhi🤝❤. as always you explained well
2nd half done. Thank you
Bro next level editing and lessons too..Thanksssssss...
Excelente conteúdo, muito bem explicado. Step by step...💯💯💯💯 Obrigado por compartilhar seu conhecimento.
Thank you Abhilash...
Best depth concept you explained abhilash
Jay jaganath abhilash
Fabulous topic. Thank you for this session
My pleasure 😊
1st Half Done, your explanations are very engaging and clear 😎
2nd Half Done, many thanks for the tutorial!
Hi @Abhilash iam looking for kafka video series from your side .have been following you for the last 3 years on words .I have covered all your videos .
Thanks bro .
Really good @Abhilash, 2nd half done
first half done 👍
great work
Very nice 👍👍
ధన్యవాదాలు!
1st half done 👍
you are best!
❤
Clear understandng each and everthing
Thank you so much, Srinivasan ❤️
Thanks sir
I have used the same methods to connect to two databases in one of the production application I'm currently working on... 😊
Thanks Abhi ❤
❤️
1st half done
I like your shirt.
Hi this owsm video Thanks so much!!
One request: could you please make one video on spark data connection, reading data from parquet file from AWS S3 using spark.sql("")
It would be greatly appreciated and very helpful.
Thanks
on multi datasource implementation in springboot I get Field ConfigurationRepository in ConfigurationService required a bean named 'entityManagerFactory' that could not be found.
Hi, excellent video! I Have a question, in spring boot 3 what is the alternative to ChainedTransactionManager?
Hi i want to connect two postgres database when both the postgres databases are up and running only primary database has to get and post the data secondary should be stand by when primary database goes down secondary database has to take over when primary database come back ideally primary should take over how can we achieve this as of now i have configured 2 postgres but both the postgres are able to get and post the data
Hi Ahbishek sir, can u please make one video on oauth internal? Like how resource server communicates with auth server internal classes and concepts?
Hi, How can we manage the multiple transaction at the same time. suppose i am inserting data in Mysql DB but unable to insert in PG Db. then how to rollback for both....
Hello Sir,
In my case the EntityManagerFactoryBuilder is not getting created automatically, I'm getting the below error
Consider defining a bean of type 'org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder' in your configuration.
Please make video for multitenant application with seperate schema. I am waiting for your video. I have searched in youtubes no videos related on this and i cannot understand those videos. Please make
Hi Abhilash, thank you so much for this video. though i learnt this myself the hard way but your video really made me understand each blocks of code and why they even need to be written. but please there is still a problem i am trying to solve, how do i make it possible to make table name come from properties file like you use @ConfigurationProperties().
i want to make it possible that users of my product can specify the table name so my entity can just model the table directly other than me changing the code. for example any authentication database would have username , password, email columns, but they can be given diffreent names like auth_table, user_table, etc. so i want people to be able to specify that table name dynamically by themselves, more like for a saas product kind of thing. is it possible?
Sir Spring boot for beginners playlist is complete ? If not please please complete it so that we move on to the difficult topics
Thank you!
Getting java job as a fresher is very difficult now a days 😢😢
Great video, 🎉 one question can’t we write a single configuration file for each of the product and order entities?
Thank you Bala, Yes we can! But better to create one per db as we can keep things relevant to a specific db.
I really like your videos and your approach. 😊
1. I find it confusing when mixing plural and singular. You always have to remember or check in which occasion which is used. Also for people who don't know English too well creating plural can be confusing because of complicated rules in English for creating plurals. Also when searching item you have to search both in plural and singular. Also because of plural table you now need this extra line @Table which makes the code more complicated. Like when at the end of the video you were writing SELECT * FROM ORDER instead of ORDERS :).
2. Why don't you use Lombok @Data for Setters, Getters & Constructors. All this extra code makes the code look more complicated.
3, If not using autogenerated Id you will probably have to constantly delete inserted records in order to insert new ones (as was the case in your other videos) which I think unnecessary adds to the length of the video, if you forget then things don't work and all in all it wastes time and breaks concentration from more important things.
4. Why do you call it ProductDAO instead of ProductRepository. It is confusing when using different name for the same thig DAO vs Repository. Now I have to remember to map DAO to Repository - so the DAO name isn't very descriptive that we are actually using Repository. When I watch other tutorials they usually name it like that. They use DAO in case they don't use Repository - for instance when they use JdbcTemplate to work with Database.
5. Maybe instead of different Databases we could try connecting to different Schemas in the same Database.
6. Also maybe to disable hints that liters the code with "no usages" to make the code more readable.
7. Why do we have to manfully create Datasource? How come previously Spring Boot was able to create it automatically from DatasourceProperties Bean. Why can't Spring Boot simply use our DatasourceProperties Bean to create Datasource as before. We have just changed how DatasourceProperties Bean is created. Why would Spring Boot care how DatasourceProperties Bean is created in order to use it to create Datasource Bean.
8. I don't think it makes sense to create a Package for every Class. Usually people create Package entity or entities and there they put ALL of their entities. And again I prefer using singular entitiy everywhere. So you did it to later use Package to define responsibility for different Entity managers?
9. Maybe to use simple English names like John when creating examples. Its easier to follow and remember.
10. How come Spring Boot looks for Bean with specific name rather then interfaces as in all other cases? Why is this different?
11, @EnableJPARepositores changes application so much. App becomes unmanageable. It can't automatically find and use repositories. Now you constantly have to align and configure whenever creating new repository. Instead of simply creating repos wherever you like and having them picked up by Spring Boot. I think this hugely increases complexity. Suddenly you can't use your app like you were used to use it. Isn't there a better way? The main point of Spring Boot is to reduce configuration and our configuration just exploded.
12. Why is save() falling under Transaction when we haven't used @Transactioanl anywhere? What I have seen is that @Transactioanl might have additional parameter specifying which transaction manager to use. So do we need Transaction Manager if @Transactional is not used?
abhi how can we integrate fingerprint with spring security?by the way your videos are very helful
47:30 keypoint
I spent one day until I found you also have the same error 1:00:19
Bro please complete the playlist of word guess game🤗🤗
Tomorrow you will get a new episode 🙂
If I give challenges you like to crack???
I can try 😀
@@SeleniumExpress share your personal email id
Bro. you are complicating simple things and make video lengthier.. keep it as simple.
Bhai accent kyo badal raha Indian accent acha nahi lgta hai kya??? Banavati lagta hai
2nd half done
Getting error- Parameter 0 of method mySQLEntityManagerFactoryBean in org.ayushsingh.springdatamulitsoruce.config.MySQLEntityManagerConfiguration required a bean of type 'org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder' that could not be found.
Hi Ayush ! Make one of your datasource as Primary.
@@SeleniumExpress didn't work for me , now getting error related to mySqlTransactionalManager
Parameter 0 of method mySqlTransactionalManager in com.example.SPringbootJpa.config.MySQLJPAConfiguration required a bean of type 'org.springframework.orm.jpa.LocalEntityManagerFactoryBean' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Qualifier("mySqlEntityManagerFactoryBean")
Hi. Did you find the solution to this issue? I am getting exact problem.