I try to create a Spring Boot 2 project with JPA to access a MySQL database using Hibernate. I have created a Gradle project on http://start.spring.io/ with JPA and MySQL dependency and imported into IntelliJ IDEA 2017.1 Ultimate
By default the persistence tool window is not present. I have searched for solution and found many different answer and know I'm a bit confused how should I configure my project. What is the correct way to do it?
What framework support should I add to my project?
How should I add them?
If my project name is db and I have the db_main and db_test modules then to which one should I attach the Facet?
At the moment I added JPA Facet with Hibernate provider and added the persistence.xml. So I have the Persistence window.
However if I try to generate entities I select the datasource, the tables, the package but nothing happens. I mean no error message just the window closes as if it would be succeeded but there is no changes in the xml and no entity was generated.
IntelliJ IDEA creates a Spring Boot run configuration that you can use to run your new Spring application. If the run configuration is selected, press Shift+F10 .
Right-click a module or a persistence unit, point to Generate Persistence Mapping and select By Database Schema. Select the source and output options and click OK.
Persistence: It is a class that contains static methods to obtain an EntityManagerFactory instance. EntityManagerFactory: It is a factory class of EntityManager. It creates and manages multiple instances of EntityManager. EntityManager: It is an interface. It controls the persistence operations on objects.
After trying a lot of solutions found on the web here is what worked for me. I hope this helps someone.
I use IntelliJ IDEA 2017.1 Ultimate
Step 1.
I have created a Spring Boot (2.0.0 M5) project using Gradle with the built in wizard and select Web, JPA and MySQL dependencies.
This gives you a very simple project structure but the Persistence tool is not available:
Step 2.
Add JPA to Facets in Project Structure window to the main module and set Default JPA Provider to Hibernate.
Note that no descriptor was added.
As result the Persistence tool window is now available and it automatically contains Entities as Persistence Unit.
Step 3.
In the Database Tool window, add new DataSource to your project and also set datasource properties in the application.properties file.
Step 4.
In the Persistence tool window right click on Entities and select Generate Persistence Mapping and By Database Schema
Now you can select for which tables you want to generate an entity:
IDEA will generate the entity classes for you.
Step 5.
At this point if you open the JPA console and write your HQL or JPL query it will fail. You need to rebuild your project before using the console.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With