首页 > 解决方案 > 我是spring新手,通过spring-data-jpa连接springboot和mysql-db时遇到这个问题

问题描述

当我在邮递员中到达终点时出现此错误


2021-07-08 16:21:36.244 WARN 11140 --- [nio-8080-exec-1] ohengine.jdbc.spi.SqlExceptionHelper:SQL 错误:1054,SQLState:42S22 2021-07-08 16:21:36.244错误 11140 --- [nio-8080-exec-1] ohengine.jdbc.spi.SqlExceptionHelper:“字段列表”中的未知列“products0_.product_id” 2021-07-08 16:21:36.258 INFO 11140 --- [ nio-8080-exec-1] oheinternal.DefaultLoadEventListener:HHH000327:执行加载命令时出错

org.hibernate.exception.SQLGrammarException:无法提取 ResultSet

引起:java.sql.SQLSyntaxErrorException:“字段列表”中的未知列“products0_.product_id”

java.sql.SQLSyntaxErrorException:“字段列表”中的未知列“products0_.product_id”

实体

@Entity
public class Products {
    @Id
    private String productId;
    private String productName;
    private double price;
    private String ownerId;
    private String imageURL;
    private String inStock;
}
//with getter setter and constructors

ProductsServiceImpl.java

package com.akilan.juztradeapi.service;
import com.akilan.juztradeapi.entity.Products;
import com.akilan.juztradeapi.repo.ProductsRepo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class ProductsServiceImpl implements ProductsService {
   @Autowired
    private ProductsRepo productsRepo;

    @Override
    public List<Products> findAllProducts() {
        return productsRepo.findAll();
    }

    @Override
    public void createDepartment(Products products) {
        productsRepo.save(products);
    }
}

产品回购

package com.akilan.juztradeapi.repo;

import com.akilan.juztradeapi.entity.Products;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ProductsRepo extends JpaRepository<Products,String> {
}

应用程序属性

spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.format_sql = true

标签: spring-bootspring-data-jpaspring-data

解决方案


感谢您的帮助, 问题是我错过了自动创建表所需的这个属性。

spring.jpa.hibernate.ddl-auto=update

应用程序属性

spring.datasource.url=jdbc:mysql://localhost:3306/tab
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto=update

推荐阅读