Ignore entities persistence from a dependency - java

I'm working on a web application that needs some dependencies, one of those being
<dependency>
<groupId>be.cocof.ddp</groupId>
<artifactId>ddp-model</artifactId>
<version>1.2</version>
</dependency>
(this dependency is developed by a 3rd-party which I can have contact with)
In this particular dependency, there are entities. In the pom.xml file, if I add the dependency like I typed above, I have an error in the deployment in wildfly : basically I use those entities but I don't have the mapped tables in my local database. Except that I only use those entities because I need them to build a request to send through a REST service developed by the same developer of the dependency. I don't need to persist all the entities information in my database.
So, how I can use this dependency without having to create tables in my database ?

I think, you cannot deploy your application without creation of the tables related to the entities. If using hibernate, you can set the property "hbm.ddl.auto-create" to "true" . This will automatically create the tables related to the entities while starting the server.

Related

How to create entity classes from database using spring boot?

I'm working on a spring boot application using spring data jpa at Spring Tool Suite IDE. I need to create entity classes from database but I couldn't find any answer to how to do it.
I saw an answer about adding JPA Facet adding and using it. But I couldn't add JPA Facet because my application is maven web , not jee application.
Mapping from db table -> entity:
Eclipse:
Make an empty JPA Project, set data sources and use JPA Tools > Generate entities from Tables. Then copy-paste model classes to your project.
IntelliJ:
Install plugin JPA Buddy and make a reverse engineering:
Reverse engineering video
Netbeans:
How to
If you know other ways to generate entities, please tell us.
You don't create entity classes from database. You create models to map your table and its relationships with other tables.
Application Properties to configure JPA mapping.
https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
Map your classes to a table.
https://www.vogella.com/tutorials/JavaPersistenceAPI/article.html#simple

Reading data from database that was inserted by another Spring Boot JPA project

I have two projects
ProjectA --> 'Spring Boot JPA based Java` project
ProjectB --> General 'Java' project
My Database is MySQL Server
My ProjectA is a web project so from a webpage I was able to get a lot of data inserted into multiple tables without any insert queries. This is because it's a JPA project and it was super easy.
Now I want to access the same data from the same database in a few Java classes in my ProjectB. I don't want to convert this into a Spring Boot project and make it more complex just to read data from two tables.
On the other hand I really don't want to use JDBC Connectors and process ResultSet etc. I like the way how annotations were used in Spring Boot JPA project to write and read data from the database.
What options do I have here?
You can use spring's JDBCTemplate or HibernateTemplate to minimize your code.

Compile Dropwizard Code without migration.xml

I have a finalized database in SQL SERVER containing 50+ tables in it and needed to connect it with Dropwizard Code.
I am new to JAVA so my conception about Migrations.xml is it is used to create the tables in database or if any change in database is needed it will be updated through migrations.xml.
So if i don't need any change in database (as told earlier it is finalized).
Can i skip this migrations.xml file?
Need some experts advice please.
If you are handling your database changes elsewhere, then you have no need for any migration xml files within your dropwizard project. It's an optional module, you don't need to use it. You don't even need to include the dropwizard-migrations dependency if you don't want to include database updates in your dropwizard project. You can still connect to your database fine within dropwizard. The docs provide examples using modules dropwizard-jdbi and dropwizard-hibernate.
To connect to your database, add the appropriate code the your java configuration file and yml config as explained in the docs.
jdbi
http://www.dropwizard.io/0.9.2/docs/manual/jdbi.html
hibernate
http://www.dropwizard.io/0.9.2/docs/manual/hibernate.html

How to access multiple database schemas from single persistence unit?

I am working on a project in which currently I have single persistence unit file as I have only one database schema there in my db. Now I need to separate that schema into two different schema. So I made two different ORM files and mapped it into the PU. Now when i build my EJB project its working fine but as soon as I build my WEB project it starts giving me compilation error.
So, is there any other way so that I can manage two different schema together??
Note that both the schema are related with foreign keys.
Please help me out.
If you are using Oracle and you have SCHEMA_1 and SCHEMA_2 and you can define synonyms:
As SCHEMA_2, grant the appropriate privileges to SCHEMA_1
Define synonyms in SCHEMA_1 for the tables in SCHEMA_2
Now in SCHEMA_1 you should be able to use SCHEMA_2 tables as if they were there

Annotations in domain objects in client pull complete hibernate dependencies

I want to share some domain objects between my client and server apps.
Starting with Hibernate 4, the Hibernate annotations were integrated in hibernate-core (used to be a separate jar), see http://in.relation.to/Bloggers/NoMoreHibernateannotationsModule
I would really prefer to stick with annotations (and not switch to xml based mapping).
At the same time I would really like to avoid bundling the hibernate core dependencies with the client (which will be transferred to the user via http through java web start, ideally on every startup).
Do I have to go back to Hibernate 3.x? Are these annotation dependencies needed to run the client or do I just need them to compile the client?
Thanks
You don't need to have the annotations of a class in the classpath to be able to load a class.
That said, a Hibernate entity contains collections and references to other entities. The collections are instances of Hibernate collections, and the references can be Hibernate proxies, if they're lazy-loaded. So if you serialize a Hibernate entity from the server to the client, the client will need the Hibernate jar(s) in its classpath to be able to load them.
If you want to avoid the Hibernate dependency at client-side, you should consider transferring DTOs to the client rather than Hibernate entities.

Categories