In my project, there is a requirement to use different databases. We are currently using MySql database with Hibernate as ORM layer. And we are hibernate SessionFactory to query the database.
Now there is a requirement to use SQLite database as well. I have found several examples on the internet but they are all using JdbcTemplate.
https://blog.pranavek.com/using-multiple-datasource-in-spring-boot-application/
https://scattercode.co.uk/2016/01/05/multiple-databases-with-spring-boot-and-spring-data-jpa/
But my requirement is to use separate sessionFactories for both the databases.
Please, help me in receiving that.
Related
Currently, i am doing DB Migration from SQL to NOSQL Db in spring boot application
I am looking for equivalent way of "#Embeddable" in cassandra 3.x or 4.x
Is it valid in NOSQL database, if not, please share the alternate way
I would like to know what's the key difference between Apache Open JPA and Spring JPA.
Spring already has a mature JPA for dealing with all kinds of Java persistence but still saw few projects in my company where they uses Apache Open JPA.
Can we integrate Apache Open JPA with Spring. Also like to know what are key benefits of Open JPA.
for example ElasticPath uses Spring but for JPA they uses Apache Open JPA
First: There is no Spring JPA.
There is spring-orm which is one of the many artifacts published by the Spring Framework. It contains classes dealing with JPA and it's main implementations (Hibernate and EclipsLink) in order to integrate them into the rest of the framework. Most Spring users rarely deal with it directly.
You are probably thinking of Spring Data JPA which offers repositories implemented with JPA, which in turn offer many ways to declare queries: Query derivation from method names, named queries based on method names, annotated queries, query by example, specifications ... It is part of the Spring Data project, which offers similar features with many different persistence technologies (JPA, MongoDb, Couchbase, Elasticsearch, Jdbc, Redis, Ldap ...). Spring Data JPA uses spring-orm
Since it got mentioned a couple of times now it is time to explain JPA: JPA stands for Java Persistence API and is an API which can and is implemented by multiple vendors. Hibernate is the most popular implementation, EclipseLink is the reference implementation and Apache Open JPA is another one.
Spring Data JPA (and spring-orm) are (mostly) based on JPA and therefore you should be able to use Apache Open JPA with it. But development of Open JPA was so slow in recent years that the Spring Data Team dropped OpenJPA from the JPA implementations it tests against.
To get a feeling for the development speed, you might look at the releases from the last three years (2019-2021):
Hibernate: 32 (not counting alpha and beta releases)
EclipseLink: 12 (not counting Milestone and release candidates)
OpenJPA: 4
As for the benefits of Apache Open JPA, I consider that an opinion question and therefore off topic for SO. But since people in your company seem to use it, I suggest asking them why they chose Open JPA over the other implementations.
I am new to Spring and Hibernate. I have a project using Spring, Hibernate and PostgreSQL. I know that I can query the database using Spring Data JPA or Hibernate, but I don't know what the benefits and disadvantages of each approach. I also know that in the background, Spring Data JPA will call Hibernate. So what is the best way I should use to query the database to get the best performance, Spring Data JPA or Hibernate or depending on the specific usage situation. Thanks very much
I think it is based on the requirements of your project.
You can find more answers to this question at StackOverflow.
We are currently introducing Javers into our spring applications for auditing. We have our entities and other central classes defined in a single project that some of our APIs use as a dependency. I noticed there are properties to disable SQL management for various purposes but not for mongo. We have some APIs that will be sending up audit data and others that will not.
Is there a property or configuration that can disable the attempt to connect to the mongo/document DB and the creation of the DBs and collections for the mongo starter?
I'm trying to replace some projects to use Spring Data JDBC
instead of using JdbcTemplate.
Now, I'd like to use it for multiple DataSources, how can I configure it in Spring Data JDBC?
There is currently no support for working with two or more DataSources. You'd have to manually redo what the JdbcRepositoryFactoryBean does.