i didn't understand onepoint; there are two entityManagerFactory in 2 db config class. What if we have so many entity classes and repo classes in the project? do we need to create config file for every single model class that we have ?
Awesome :) Exactly what I am looking for :) Thanks a lot With the reference of this I am able to integrate Spring boot with MySQL and Neo4j repositories at the same time.
Thank you so much sir for your hard efforts for us to make us with easy learn. Awesome and very helpful videos and you also explain the concept very well. Thanks , i took reference of your this code and videos to implement my task, now i need to connect my API with 3 database as @primary will help for between two database .. as for three database i am getting , how i can mange it with qualifier or any other ways for the same. Thanks for your hard efforts as you bring knowledgeable videos. Thanks.
Hi, Can we join two tables from different databses? Say employee is in oracle DB and Department in mysql DB. I dont want to join inside service but want to join in repo using jpql.
I have one doubt? I have two schemas work -> customer_table work2 -> customer_table how can I call dynamically for different schemas? I have one POJO class and one repository, how to change the table name dynamically.
Thanks for the step by step execution dear Friend! Actually, I have downloaded a copy but it was not working for me. when I watched this video I corrected a few things in the code and it was working fantastically.
However, I would like to know how to send data as a JSON to the endpoint? because what I could see is that passing the values to Model classes in a program itself. I want to know how to do it dynamically at run time with postman?
@@vijayakumarkrishnan9269 this is backend code that's why I tried with postman but if you want data in real time scenario then it should be pass through client (angular, Ajax)
@@Javatechie Yes, exactly, I have a client app which submits the data from a web form to backend endpoint via Ajax post. but would like to know how to process Ajax data in backend repository code or in the controller.
Getting error: Parameter 0 of method studentEntityManagerFactory in com.school.config.StudentsDataSourceConfig required a bean of type 'org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder' that could not be found. Action: Consider defining a bean of type 'org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder' in your configuration.
hi sir facing this issue - HikariPool-1 - jdbcUrl is required with driverClassName., java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName. even though i have already taken the driver-class-name: org.postgresql.Driver, so could you please help what should i need to do because i am doing this with postgresql
I have 2 schemas, and both are identical (they are just replicas), do I still need to maintain 2 different models and repositories? Or can the basePackages be the same?
Hi, Java Techi, Thank you for your video, I have a doubt I configured just like you with customer and order in two different DB and they are in one to many relation so when I set scan packages to com.example in config I'am able to create table but all tables are getting created in both DB how do I resolve that and make to create only one table in each DB
Hi, I have downloaded the code from git and tried to execute. Its creating both the tables in one schema only. Any idea why so? I also have to add few properties in POM.xml to make it work
Very nice Explanation.. Requesting you to pl. make a similar 30 minute video including code example for distributed transaction management using Spring Boot microservice. Thanks!
Yes it's on table level. But what If I have to achieve a common/ global transaction on two diff tables... Example: a distributed Trx mgmt, if there are two tables(say db1.table1 and db2.table2).. but using single Trx. Like, if amount debited from db1.SBI table is successful. But credit in db2.hdfc table is failed. Then it should rollback. And SBI refund should be there. so if you can demo using Hibernate Jpa and spring boot. It would be great.
Why separate config for each entity ... can't it be done on single config class .. as in real time we will be having multiple entities so i don't think it's good practise to create separate config for each entity. Any suggestion on that
Hi, I Need your advice here. I’m building a web application which allows users to choose database (HK,UK,US) from the UI. Based on his selection of databases, I need to connect to respective DB instance in the spring boot + Jpa. Please share your thoughts!
We can do one thing Based on UI input we will enable profile for region rather than environment Let's se I chooses UK then from application we will setActiveprofile to UK so that corresponding datasource properties will be loaded . Do let me know if you have any issue. Very interesting concept
Hi sir good explanation, I am having a doubt I need to connect different schemas like user model has separate user schema and book model has separate book schema but both are in sql database , may i use this same configuration for this task and also should i create a separate separate packages for both "pls reply "
@@Javatechie Is there any way we can pass dynamic schema name rather than hardcoding in application.properties? let's say adding new schema for any new client enrolled to system. Thanks in advance!
Hi @Java Techie Can we Datasource-1 for Multiple repositories? Example: I am having two Data Sources DS-1, DS-2 DS-1 contains Books, NewsPaper, Notes, Ref-Materials, etc tables, Whereas DS-2 contains transactions of users. It's Possible to connect DS-1 with Multiple Repo?
Nice video basanth.. How @configurationproperties() working here.. because in properties file the prefix is (spring. User........) but in your config class you mentioned pring.user... how the data source were created in your application. Check at time about 12:19 .. nice video..
@@nageswararaopalchuri3003 you can ignore it ,I just used it to disable all the database related auto configuration as I configured manually using java base config approach
@@Javatechie You have used persistent Unit name as "User' . So my question was what if there are 10 entitites. ? Should should write configuration for all 10 entities as persistant Unit?
Thanks for the video. Can you please make a video showing Springboot Application which will be deployed to Weblogic Server and connect to a JNDI datasource which is already created in weblogic server. Thanks in advance.
Nice Video could you please clarify the below points 1. (23:24) in persistanceUnit("Book") we configure for one table entity, what if the db have some 10 tables how to configure all of them 2. And you created Repository by extending Jparepository what if we want to interact with 10 tables in that Db. 3. is there any way to configure EntityManager per datasource so that we can interact with all tables in that datasource? Please explain these points.
We are manually creating datasource specific to database then we are adding required configuration stuff Once our datasource created we are mapping it to entity manager .
@@Javatechie what is that persistent()?. There you mentioned entity name. But what about if we have multiple entities. How do I mention entities to that persistent.
we have created two data sources each data source has one table, what if we have more tables in each data source, how we create entities and how we bind to particular data source?
Very nice explanation. Keep it up. Can't we keep both user and book repository interfaces in a single package instead of keeping in 2 different packages??
U give input like user and book to the value of the persistence unit So is it means name of the model class If it is yes how can I give all model for that..
Dude please watch from begin I mentioned there as I don't have multiple databases install in my machine am giving example using two different entity Let's say I have Oracle and MySQL Oracle db I can configure N number of entity similarly for Oracle I can configure N number of entity Because in one database we xan have multiple entity If you have multiple DB in your machine then please try configure it and see I Just configure 2 schema to show demo how to configure in case data source .
@@Javatechie @Akshat Pandey, could you please send share your code how u configured mysql and mongo in single application. I'm facing problem with mysql+mongodb databases combination
Hi, really nice video. Is this also the way to achieve dynamic data source routing? If in the payload we getting which database we require to query/update. Will this be an optimum way to do it?
Hi ... Thank you .. I have went through all your videos related to the H2 and multiple datasources, as I'm building my spring boot objects based on that. But in my spring-boot application I'm using multiple datasource , one is Oracle and other one is H2 database. My application is connecting to Oracle Database, but h2-console is not opening. do you suggest any solution for it. Here is my application.properties file looks like. #oracle spring.oracle.datasource.jdbcurl= spring.oracle.datasource.username= spring.oracle.datasource.password= spring.oracle.datasource.driver-class-name= #H2 spring.h2im.console.enabled=true spring.h2im.console.path= /h2-console spring.h2im.datasource.platform= h2 spring.h2im.datasource.jdbcurl= jdbc:h2:./test spring.h2im.datasource.username= sa spring.h2im.datasource.password= spring.h2im.datasource.driver-class-name=org.h2.Driver
You want to update record ? If any field changed right ? So first you need to get existing object from dB then set the new value to object next save it
Thank you, brother, on July 25th, 2023 at 2:15 AM in the United States you solved my problem. Thanks for this video. Wish you all good.
interview point of view this video is very important , those who wants the Resume Spring Boot
Sir, you can put a payment link for donation, you are doing a lot good for free and you deserve something in return.
Agreed with you and .. hands up to his efforts 🙏
Thank you, 4 years old but still works
Awesome this is exactly what i was looking for. This question asked me in interview repeatedly
Thank you so much for sharing the knowledge on multiple datasource usage in MS.
This tutorial actually i am looking for.Thanku.
Thanks for the video it's clear and useful for attending interviews
Great tutorial, it has helped me with one of the most important tasks I had to do.
i didn't understand onepoint; there are two entityManagerFactory in 2 db config class. What if we have so many entity classes and repo classes in the project? do we need to create config file for every single model class that we have ?
No if Entity belongs from same Database then in one entityManager configuration you can add those entity
Just for the readers, hbm2ddl.auto=update is discouraged in production. Better use dbProperties.put("hibernate.hdm2ddl.auto", "validate");
Awesome :) Exactly what I am looking for :) Thanks a lot With the reference of this I am able to integrate Spring boot with MySQL and Neo4j repositories at the same time.
Thank you so much sir for your hard efforts for us to make us with easy learn. Awesome and very helpful videos and you also explain the concept very well. Thanks , i took reference of your this code and videos to implement my task, now i need to connect my API with 3 database as @primary will help for between two database .. as for three database i am getting , how i can mange it with qualifier or any other ways for the same. Thanks for your hard efforts as you bring knowledgeable videos. Thanks.
Thanks Veena ,
What difficulty you are facing while connect to 3 different datasource however approach is same
Thank you so much sir
Excellent, it really helped a lot.
Datasource are mapped using keys with domain-name (from 7.09)
Syntax: "spring...url = xxx"
instead of "spring..url = xxx"
very helpful. thank you for video
Thanks. Awesome and helpful
Hi, Can we join two tables from different databses? Say employee is in oracle DB and Department in mysql DB.
I dont want to join inside service but want to join in repo using jpql.
I don't think we can do that but let me try and update you
Very helpful Basant super
Love java tikki.. Great job
Typo javatechie 🤪, anyway thanks
thank you basant bhaiya
Thank you.
I have one doubt?
I have two schemas
work -> customer_table
work2 -> customer_table
how can I call dynamically for different schemas?
I have one POJO class and one repository, how to change the table name dynamically.
Is both schema comes under same datasource?
@@Javatechie Yes, But we have to write two resources,
such as localhost:8080/work/customer1
and localhost:8080/work/customer2
@@saadmohammed6062 hi could you please elaborate bit more
With this 2 resource what you want to achieve
@@Javatechie I have two schemas in MySQL.
work1 and work2 each have a customer table.
How to call them dynamically at runtime.
Thanks for the step by step execution dear Friend! Actually, I have downloaded a copy but it was not working for me. when I watched this video I corrected a few things in the code and it was working fantastically.
Thanks Vijaya , Could you please update here if you found any issue with same code
@@Javatechie I have downloaded some different Code friend. Not your code. Your code works seamlessly fine :)
However, I would like to know how to send data as a JSON to the endpoint? because what I could see is that passing the values to Model classes in a program itself. I want to know how to do it dynamically at run time with postman?
@@vijayakumarkrishnan9269 this is backend code that's why I tried with postman but if you want data in real time scenario then it should be pass through client (angular, Ajax)
@@Javatechie Yes, exactly, I have a client app which submits the data from a web form to backend endpoint via Ajax post. but would like to know how to process Ajax data in backend repository code or in the controller.
Thanks a lot, you are the best!!!
Great
Best 😘
Getting error: Parameter 0 of method studentEntityManagerFactory in com.school.config.StudentsDataSourceConfig required a bean of type 'org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder' that could not be found.
Action:
Consider defining a bean of type 'org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder' in your configuration.
hi sir facing this issue - HikariPool-1 - jdbcUrl is required with driverClassName., java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName. even though i have already taken the driver-class-name: org.postgresql.Driver, so could you please help what should i need to do because i am doing this with postgresql
I have 2 schemas, and both are identical (they are just replicas), do I still need to maintain 2 different models and repositories? Or can the basePackages be the same?
Hi, Java Techi, Thank you for your video, I have a doubt I configured just like you with customer and order in two different DB and they are in one to many relation so when I set scan packages to com.example in config I'am able to create table but all tables are getting created in both DB how do I resolve that and make to create only one table in each DB
Hi, I have downloaded the code from git and tried to execute. Its creating both the tables in one schema only. Any idea why so? I also have to add few properties in POM.xml to make it work
thanks for sharing the valueble info..How to connect with Maria DB and Mssql DB
Just change datasource properties that's it
Excellent!!
Thank you, so much.
Hi. how can I Sync the two databases? when database A is updated then Database B gets automatically updated?
Not sure will check and update
@@Javatechie that would be gladly appreciated, thank you.
Very nice Explanation..
Requesting you to pl. make a similar 30 minute video including code example for distributed transaction management using Spring Boot microservice. Thanks!
Thanks!
always your super sir
What about rollback Trx 1 on failure of Trx 2 in two different databases.
As far I understand we can't apply transaction on database level it should be Table level correct me if am wrong
Yes it's on table level. But what If I have to achieve a common/ global transaction on two diff tables...
Example: a distributed Trx mgmt, if there are two tables(say db1.table1 and db2.table2).. but using single Trx.
Like, if amount debited from db1.SBI table is successful. But credit in db2.hdfc table is failed. Then it should rollback. And SBI refund should be there.
so if you can demo using Hibernate Jpa and spring boot. It would be great.
@@pncabhsiek3311 I was also searching this pattarn but didn't succeed yet .I will update you once I do
@@Javatechie Hello dear, have you find any valuable information of the @pnc abhsiek question ?
Good stuff! It seems like multiple schemas are also accessible with the same datasource only by putting different usernames. Thanks.
Not by username , you can say schema name
Bhai mast heichhi video ta
Why separate config for each entity ... can't it be done on single config class .. as in real time we will be having multiple entities so i don't think it's good practise to create separate config for each entity. Any suggestion on that
As there is two datasource we need to configure that in different config . As one of them we are making primary
So can't we configure more than 1 datasources in 1 config file only ... that's my question
No we can't Hitesh
Hi, I Need your advice here.
I’m building a web application which allows users to choose database (HK,UK,US) from the UI. Based on his selection of databases, I need to connect to respective DB instance in the spring boot + Jpa. Please share your thoughts!
We can do one thing
Based on UI input we will enable profile for region rather than environment
Let's se I chooses UK then from application we will setActiveprofile to UK so that corresponding datasource properties will be loaded .
Do let me know if you have any issue.
Very interesting concept
Bro. Please do a tutorial on Multi-tenancy in spring boot.
hi, you tightly coupled specific model/entity class .If we have more than one table/entity how to configure.?
I'm facing an exception. EnitityExistException. Please help
What you are trying please mention here
If I have 100+ tables in both the DB's then I have to make 100+ config classes for both DB ?
Is there any smart way of doing this ?
Configuration not required for table it need for database
Hi, i am also using the same context. could you let me know how shall i handle the exception if any one of the db is down or table not exist?
These are only fr specific 2 domain class user and book..if in case we need to use multiple domain class...then how can we maintain in package basis
Amazing 🙏
Can you please give explanation for distributed transactions in spring microservices
Already i uploaded videos on it . check saga choreography
I have multiple entities in the same package. What should I do?
Hi sir good explanation, I am having a doubt I need to connect different schemas like user model has separate user schema and book model has separate book schema but both are in sql database , may i use this same configuration for this task and also should i create a separate separate packages for both "pls reply "
Yes you can follow the same only change the schema name in the URL in the application.properties
@@Javatechie Is there any way we can pass dynamic schema name rather than hardcoding in application.properties? let's say adding new schema for any new client enrolled to system. Thanks in advance!
Lombok is not working in my Eclipse ide although I have mentioned in dependencies sir. could you please tell me what may be the problem
You need to configure it in your IDE , adding dependency is not enough
Please go through my blog and search you will get steps to configure Lombok
Great! Thanks for sharing.
I am getting error executing ddl "alter table" via JDBC statement
It works!!!!!!
Hi @Java Techie
Can we Datasource-1 for Multiple repositories?
Example:
I am having two Data Sources DS-1, DS-2
DS-1 contains Books, NewsPaper, Notes, Ref-Materials, etc tables,
Whereas DS-2 contains transactions of users.
It's Possible to connect DS-1 with Multiple Repo?
Yes we can
@JavaTechie Thanks for the quick reply. If possible can you share any demo projects or video for reference.
找了很多教程都不行,这个ok,thanks!
Nice video basanth.. How @configurationproperties() working here.. because in properties file the prefix is (spring. User........) but in your config class you mentioned pring.user... how the data source were created in your application. Check at time about 12:19 .. nice video..
Hey Narendra yeah it should be spring ,latter I changed spell before run
@@Javatechie ohh.. Okay
What is the use of writing the spring.autoconfigure.exclude in properties file
@@nageswararaopalchuri3003 you can ignore it ,I just used it to disable all the database related auto configuration as I configured manually using java base config approach
Do we have to add configuration class for every entity in the project? Lets say there are 10 entity classes?
Only configuration required for data source not for entity pavan
@@Javatechie You have used persistent Unit name as "User' . So my question was what if there are 10 entitites. ? Should should write configuration for all 10 entities as persistant Unit?
Pavan in one configuration we can mention multiple entity . this what the small poc .
Hello Basant, how do we connect more than one table ? could you please answer my question
Thanks for the video. Can you please make a video showing Springboot Application which will be deployed to Weblogic Server and connect to a JNDI datasource which is already created in weblogic server. Thanks in advance.
while adding Hikari config I am getting : HikariPool-1 - dataSource or dataSourceClassName or jdbcUrl is required.
Nice Video could you please clarify the below points
1. (23:24) in persistanceUnit("Book") we configure for one table entity, what if the db have some 10 tables how to configure all of them
2. And you created Repository by extending Jparepository what if we want to interact with 10 tables in that Db.
3. is there any way to configure EntityManager per datasource so that we can interact with all tables in that datasource?
Please explain these points.
For each table you need to create separate repo that's what database per service pattern in microservices
@@Javatechie ok so i need to create 10 interfaces(Repositories).
and is there any way to configure EntityManager per datasource?
Thanks for this video. One small query, if i have one more entity, say UserAddress, then how would i indicate this in the userconfig class?
We can setClasses in spring config class only as I can't remember the syntax now .
Mind-blowing. Can you make a tutorial on Mule
Can we migrate data from mysql to psql or psql to mysql.
Ofcourse we can
Thank you for this tutorial I am very happy
That's what I did here , two database means definitely we need to configure two different datadource .
Let me know your doubts with more info
@@Javatechie my Question is how you can create a new datasource at runtime by controller web by generated code . " programmatically and dynamic "
We are manually creating datasource specific to database then we are adding required configuration stuff
Once our datasource created we are mapping it to entity manager .
@@Javatechie Thanks sir, I know what I did but can you help me do this work? Or guide me something in this problem
How to get all suggestions like you did when write classes name...?
I am also using Eclips
There you mentioned persistent entity as User And Book. What should I mention of I have more than 5 entities in that model packages.
Can you explain your complete scenario
@@Javatechie what is that persistent()?. There you mentioned entity name. But what about if we have multiple entities. How do I mention entities to that persistent.
thank you very much ^__________^
Can any one help .if i want create multiple table at time in multiple data source. then i how to use persistUnit.
Raj I will check and update
Great JOb Basant BHi :)
we have created two data sources each data source has one table, what if we have more tables in each data source, how we create entities and how we bind to particular data source?
how to connect h2 and my sql database in one spring boot application
Weather the same method will work ?
Did you tried it before ?
Are you getting any issue?
@@Javatechie till now not tried but in my project requirement i have to do it . So was asking weather this method will work for h2 database also .
@@Javatechie i have to integrate h2 and sql database in one application weather it will work ?
It will work in that case you don't need to configure this spring config class only you need to add in properties file .
Facing an issue unsatisfiedcondision error bean for Repository
I'm getting lots of exceptions - dependencies are missing. can you share the POM.xml for this application.
GitHub link mentioned in video description
Very nice explanation. Keep it up. Can't we keep both user and book repository interfaces in a single package instead of keeping in 2 different packages??
No not possible you will get exptception so we should follow the hierarchy
@@JavatechieThank You so much for your quick response 😊👍. may I know the reason....why it's not possible?
Iam using Oracle it is throwing exception like jdbcurl is required with driver class name can u plz help me thanks in advance
Didn't you configure in your application.properies file
@@Javatechie I have used what u given everything I followed can plz help showing jdbc required driver class like that showing
For Oracle you need to configure valid
Datasource information in your application.properies am explained with two MySQL instance only
@@Javatechie can u tell those configurations sir
I have changed related to Oracle but showing driver class required jdbc url like that where I should change can u tell
thanks so much for your tutorial.
now i have question, if i have more than one entity in both datasource, what changes i need to do and where?
You only need to create additional repository later that's it
@@Javatechie Nice, this works for me, i love you
nice tutorial
Thank you for this video, but how i can use three data source ? the anotation @Primary don't work if we have three data source
Hi Tarik , thank you
Yes it will work with N number of DB , but at same time I don't think we can use it
What is the persistence unit and if I have 20 model class in package
Can I work like this?
Yes you can no issues on that
U give input like user and book to the value of the persistence unit
So is it means name of the model class
If it is yes how can I give all model for that..
Dude please watch from begin
I mentioned there as I don't have multiple databases install in my machine am giving example using two different entity
Let's say I have Oracle and MySQL
Oracle db I can configure N number of entity similarly for Oracle I can configure N number of entity
Because in one database we xan have multiple entity
If you have multiple DB in your machine then please try configure it and see
I Just configure 2 schema to show demo how to configure in case data source .
Cooolll
Can we do Master slave data source configuration similar way for one is for write and other is for read
Suppose there are two entities for a database and two entities for another...how to cater that
thanks dear
Does it work the same if i have to MongoDB databases?
While configuring NoSQL DB (mongo,cassandra,neo4j) we are not giving datasource details
@@Javatechie Rest all is exactly same? Can i follow this tutorial and set up my mongodb connection successfully?
@@akshatpandey2256 yes you can , already I created one repo with MySQL and mongo .
@@Javatechie @Akshat Pandey, could you please send share your code how u configured mysql and mongo in single application. I'm facing problem with mysql+mongodb databases combination
@@bhanubill please refer below POC github.com/Java-Gyan-Mantra/multiple-db-connection
Hi, really nice video.
Is this also the way to achieve dynamic data source routing?
If in the payload we getting which database we require to query/update.
Will this be an optimum way to do it?
Akshya that's why we created two repository right ?
Based on your payload choose the appropriate repository and populate the data
Can you please help us with new video for Spring and Mysql new version.
This is not working for me
Hi ... Thank you .. I have went through all your videos related to the H2 and multiple datasources, as I'm building my spring boot objects based on that. But in my spring-boot application I'm using multiple datasource , one is Oracle and other one is H2 database. My application is connecting to Oracle Database, but h2-console is not opening. do you suggest any solution for it.
Here is my application.properties file looks like.
#oracle
spring.oracle.datasource.jdbcurl=
spring.oracle.datasource.username=
spring.oracle.datasource.password=
spring.oracle.datasource.driver-class-name=
#H2
spring.h2im.console.enabled=true
spring.h2im.console.path=
/h2-console
spring.h2im.datasource.platform=
h2
spring.h2im.datasource.jdbcurl=
jdbc:h2:./test
spring.h2im.datasource.username=
sa
spring.h2im.datasource.password=
spring.h2im.datasource.driver-class-name=org.h2.Driver
Remove all property related to H2 from properties file
Only add spring.h2.console.enable=true
I want to update if there are any differences in data.is that possible??
You want to update record ? If any field changed right ?
So first you need to get existing object from dB then set the new value to object next save it
@@Javatechiethanks for the reply. there are 2 lakhs record in both tables. I have to compare every row right?if so Is jpa is the best way?
No for this jpa is not fisible solution to use .
You need to to customize your query.looks interesting scenario
Let me think if I can help you
How about using different database vendors? How would you set then multiple data bases? And database dialects?
great tutorial but where the oracle configration
How to manage when we have multiple tables ?
How will add 3 DB, primary will be only one?
Use a separate DB Config for each domains and create separate EntityManagerFactoryBean using EntityManagerFactoryBuilder (as shown @ 15.36)
Yes it's not straight forward