java - IntelliJ IDEA 对 Spring Boot 项目的持久化支持

标签 java spring hibernate jpa intellij-idea

我尝试使用 JPA 创建一个 Spring Boot 2 项目,以使用 Hibernate 访问 MySQL 数据库。我在 http://start.spring.io/ 上创建了一个 Gradle 项目具有 JPA 和 MySQL 依赖项并导入 IntelliJ IDEA 2017.1 Ultimate

默认情况下,持久性工具窗口不存在。我搜索了解决方案并找到了许多不同的答案,并且知道我有点困惑应该如何配置我的项目。正确的做法是什么?

  1. 我应该向我的项目添加什么框架支持?

    • Spring 数据 JPA
    • hibernate
    • JPA
  2. 我应该如何添加它们?

    • 右键单击我的模块并“添加框架支持”(我可以在此处选择 Spring Data JPA 和 Hibernate)
    • Project Structure -> Facets -> Add(这里我可以选择Hibernate和JPA)
  3. 如果我的项目名称是 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) 项目并选择 WebJPAMySQL 依赖项。 enter image description here

这为您提供了一个非常简单的项目结构,但持久性工具 不可用: enter image description here

第 2 步。

JPA 添加到主模块的 Project Structure 窗口中的 Facets,并将 Default JPA Provider 设置为 Hibernate .

请注意,没有添加任何描述符。

enter image description here

因此,持久性工具 窗口现在可用,它自动包含实体 作为持久性单元。

enter image description here

第 3 步。

数据库工具窗口中,将新的数据源添加到您的项目,并在 application.properties 文件中设置数据源属性。

enter image description here

第 4 步。

在持久性工具窗口中,右键单击实体并选择生成持久性映射按数据库模式

enter image description here

现在您可以选择要为哪些表生成实体:

enter image description here

IDEA 将为您生成实体类。

enter image description here

第 5 步。

此时,如果您打开 JPA 控制台 并编写您的 HQL 或 JPL 查询,它将失败。在使用控制台之前,您需要重建您的项目。

enter image description here

关于java - IntelliJ IDEA 对 Spring Boot 项目的持久化支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46892039/

相关文章:

java - 如何为所有 Controller 和页面仅绑定(bind)一次共享片段的数据?

java - Hibernate 对象未分离

java - 处理用户选择的文件的子文件夹

java - 如何编辑在 map 内设置为值的列表? (具体示例;Java)

java - Spring 3.0——无法为 XML 模式 namespace 上下文找到 Spring NamespaceHandler

Java框架创建简单的网站?

java - @JoinColumnS 涉及一对一关系中的 EAGER 获取

java - 两列之间差异的 Hibernate 标准

java - Ivy 未能解决

java - 添加更多 Controller 时,Spring mvc 性能显着下降