在 IntelliJ 中使用 JPA 的 Spring Boot

Posted

技术标签:

【中文标题】在 IntelliJ 中使用 JPA 的 Spring Boot【英文标题】:SpringBoot with JPA in IntelliJ 【发布时间】:2017-08-02 21:29:39 【问题描述】:

我刚从 Spring 开始,实际上我是一步一步的教程,所以一切都会很好,但不知何故,我在添加 JPA 元素后运行 spring boot 时遇到了问题。

之前我遇到了数据库类型 NONE 的问题,所以我手动添加了依赖:

        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derby</artifactId>
            <version>10.12.1.1</version>
            <scope>runtime</scope>
        </dependency>

但我觉得 pom 文件中仍然缺少一些东西,如下所示: Pom.XML

带有错误的控制台输出如下所示: Console output

实施: 1. class Topic 2. class TopicController 3. class TopicRepository 4. class: TopicService 5. run class

【问题讨论】:

在问题中发布错误堆栈跟踪以及相关代码。 Hibernate 清楚地抱怨类 Topic 不是托管类型。发布这个类,以及你的 hibernate/jpa 配置。 您的控制台输出显示您的 topicRepository 类无法初始化,因为类 defaultpackage.topic.Topic 似乎是您的 bean。你能分享一下实施的细节吗? 添加完整代码 你需要在 Topic 类上添加实体注解,这样 CrudRepository 才能工作 【参考方案1】:

需要注解Topic类:

package defaultpackage.topic;

/**
 * Created by zales on 02.03.2017.
 */
@Entity
public class Topic 
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private String id;
    private String name;
    private String discription;


    public Topic() 
    

    public Topic(String id, String name, String discription) 
        super();
        this.id = id;
        this.name = name;
        this.discription = discription;
    

    public String getId() 
        return id;
    

    public void setId(String id) 
        this.id = id;
    

    public String getName() 
        return name;
    

    public void setName(String name) 
        this.name = name;
    

    public String getDiscription() 
        return discription;
    

    public void setDiscription(String discription) 
        this.discription = discription;
    

您可以在此处查看带有实体和存储库的类似示例:

https://github.com/ccoloradoc/HibernateFilePermissionSample

还要确保所有实体与 SpringBootApplication 位于同一包(或子包)中。

【讨论】:

一切对我有用,谢谢!我只需要删除@GeneratedValue,因为我没有使用像 1、2、3 这样的临时 ID,而且 Id 是字符串

以上是关于在 IntelliJ 中使用 JPA 的 Spring Boot的主要内容,如果未能解决你的问题,请参考以下文章

IntelliJ 无法识别 Kotlin JPA 插件

EJB,JPA persistence.xml问题Wildfly 8.2 intellij

JPA 自动完成功能在 Intellij spring-boot kotlin 项目中不起作用

IntelliJ IDEA 2017版 spring-boot2.0.2 搭建 JPA springboot DataSource JPA sort排序方法使用方式, 添加关联表的 order by

为啥 Spring JPA Mysql 数据连接可以在 IntelliJ 中正确初始化,但不能在命令行中初始化?

无法在 IntelliJ IDEA 中生成 JPA Hibernate 元模型类