我尝试使用 JPA 创建一个 Spring Boot 2 项目,以使用 Hibernate 访问 MySQL 数据库。我在 http://start.spring.io/ 上创建了一个 Gradle 项目具有 JPA 和 MySQL 依赖项并导入 IntelliJ IDEA 2017.1 Ultimate
默认情况下,持久性工具窗口不存在。我搜索了解决方案并找到了许多不同的答案,并且知道我有点困惑应该如何配置我的项目。正确的做法是什么?
我应该向我的项目添加什么框架支持?
- Spring 数据 JPA
- hibernate
- JPA
我应该如何添加它们?
- 右键单击我的模块并“添加框架支持”(我可以在此处选择 Spring Data JPA 和 Hibernate)
- Project Structure -> Facets -> Add(这里我可以选择Hibernate和JPA)
如果我的项目名称是 db 并且我有 db_main 和 db_test 模块,那么我应该将 Facet 附加到哪一个?
- 数据库
- db_main
目前我添加了 JPA Facet 和 Hibernate 提供程序并添加了 persistence.xml。所以我有持久性窗口。
但是,如果我尝试生成实体,我会选择数据源、表、包,但没有任何反应。我的意思是没有错误消息,只是窗口关闭,就好像它会成功一样,但 xml 中没有任何更改,也没有生成任何实体。
最佳答案
在尝试了很多在网上找到的解决方案之后,这里对我有用。我希望这对某人有所帮助。
我使用的是 IntelliJ IDEA 2017.1 Ultimate
第 1 步。
我使用 Gradle 和内置向导创建了一个 Spring Boot (2.0.0 M5) 项目并选择 Web,JPA 和 MySQL 依赖项。
第 2 步。
将 JPA 添加到主模块的 Project Structure 窗口中的 Facets,并将 Default JPA Provider 设置为 Hibernate .
请注意,没有添加任何描述符。
因此,持久性工具 窗口现在可用,它自动包含实体 作为持久性单元。
第 3 步。
在数据库工具窗口中,将新的数据源添加到您的项目,并在 application.properties 文件中设置数据源属性。
第 4 步。
在持久性工具窗口中,右键单击实体并选择生成持久性映射和按数据库模式
现在您可以选择要为哪些表生成实体:
IDEA 将为您生成实体类。
第 5 步。
此时,如果您打开 JPA 控制台 并编写您的 HQL 或 JPL 查询,它将失败。在使用控制台之前,您需要重建您的项目。
关于java - IntelliJ IDEA 对 Spring Boot 项目的持久化支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46892039/