IDEA中springBoot项目使用JPA(hibernate)无法自动生成实体关联的数据表的解决问题

今天在进行项目开发的时候,使用JPA进行数据库的创建,在实体类创建成功application.yml文件配置好的情况下,运行项目之后没有报任何错误,但是对应的数据库中没有生成实体类对应的表。

application.yml配置如下
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    username: root
    password: 277171

  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true
    database: mysql

logging:
  level:
    root: info
    com.mzc: debug
  file:
    path: log/myblog-dev.log

实体类的创建大致如下
package com.mzc.po;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;

/**
 * @author mazhicheng
 * @date 2020/5/9 - 10:14
 */

@Entity
@Table(name = "t_type")
public class Type {

    @Id
    @GeneratedValue
    private Long id;
    private  String name;

    @OneToMany(mappedBy = "type")
    private List<Blog> blogs=new ArrayList<>();

    public Type() {

    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public List<Blog> getBlogs() {
        return blogs;
    }

    public void setBlogs(List<Blog> blogs) {
        this.blogs = blogs;
    }

    @Override
    public String toString() {
        return "Type{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

包结构的包裹层次如下(确保了数据库实体类的包(po包)在启动文件所在包(com.mzc)下)

在这里插入图片描述

最终问题

最后,在折腾可差不多一天之后,终于找到了问题,问题不在application.yml中,也不再实体类的编写中,确实在启动类中

package com.mzc;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;


//(exclude={DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
@SpringBootApplication
public class MyblogApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyblogApplication.class, args);
    }

}

(exclude={DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})是@SpringBootApplication注解括号中的内容,之所以根据实体类自动创建数据表不成功就是因为加上了它。

出现问题原因:

pom.xml中配置了有关jpa后如果没有写数据库创建的实体类,就会提示@SpringBootApplication注解之后加**(exclude={DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})**,但是在我之后写项目创建了实体类之后忘了把这个去掉,然后就gg了。它就把jpa创建数据表给屏蔽了

最后把这个去了,重新编译运行就ok了,控制台输出有关Hibernate的信息表示数据表创建成功!!
在这里插入图片描述

还是要感谢交流群中的大佬,做过的人总是有经验,会让你少走很多弯路,感谢大佬们!!!嘻嘻嘻
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

良缘白马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值