1

我正在尝试使用邮递员执行服务,但它正在生成下一个错误

该表还没有信息

public List<TestEntity> getFilterTest() {
        List<TestEntity> test= this.testRepositoryJPA.findAll();
        if(!stateBus.isEmpty()) {
            return test.stream()
                    .filter(x -> x.getState().toLowerCase().equals("PRUEBA"))
                    .collect(Collectors.toList());
        }
        return test;
    }

标记错误的行是下一个

List<TestEntity> test= this.testRepositoryJPA.findAll();

JPA 实体

public interface TestRepositoryJPA extends JpaRepository<TestEntity, Integer> {
    final static Logger logger = Logger.getLogger(TestRepositoryJPA .class);
}

绒球

<!-- Conector/libreria de MYSQL para java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

实体是

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.log4j.Logger;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "test")
public class TestEntity implements Serializable {

    final static Logger logger = Logger.getLogger(TestEntity.class);
    private static final long serialVersionUID = -2463354084291480284L;

    @Id
    private Integer id;

    @Column(nullable = false , name = "a")
    private String  a;

    @JsonFormat(pattern="yyyy-MM-dd hh:mm:ss")
    @Column(nullable = false , name = "b")
    private Date b;

    @Column(nullable = false , name = "c")
    private Integer  c;

    @JsonFormat(pattern="yyyy-MM-dd hh:mm:ss")
    @Column(nullable = false , name = "d")
    private Date  d;

}

该表有下一个数据

如果不存在则创建表Testtest( idINT NOT NULL, aVARCHAR(45) NULL DEFAULT NULL, bDATETIME NULL DEFAULT NULL, cINT NULL DEFAULT NULL, dDATETIME NULL DEFAULT NULL, PRIMARY KEY ( id)) 引擎 = InnoDB 默认字符集 = utf8;

日期时间格式是下一个

2021-08-12 10:15:00

查询结果是下一个

在此处输入图像描述

堆栈跟踪是下一个

rg.springframework.orm.jpa.JpaSystemException:无法执行查询;嵌套异常是 org.hibernate.exception.GenericJDBCException: could not execute query at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:353) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible (HibernateJpaDialect.java:255) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:528) at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) at org.springframework。 dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) 在 org.springframework.dao.support.PersistenceExceptionTranslationInterceptor。

4

2 回答 2

0

date如果任何行包含零值,请检查具有类型的数据库表列0000-00-00

于 2022-01-21T08:35:38.290 回答
0

在我的情况下,错误是因为我的实体有一个空字段,然后我更改了字段

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.log4j.Logger;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "test")
public class Test implements Serializable {

    final static Logger logger = Logger.getLogger(StateDriverEntity.class);
    private static final long serialVersionUID = -2463354084291480284L;

    @Id
    private Integer id;

    @Column(nullable = false , name = "a")
    private String  a;

    @Column(nullable = false , name = "b")
    private Date b;

    @Column(nullable = false , name = "c")
    private Integer  c;

    @Column(nullable = false , name = "d")
    private Date  d;

}

字段 c 具有此名称

stateActive

生成错误是因为当 JPA 生成映射时,它会转换为驼峰式

state_active

这些列没有数据,因此可为空的会生成错误。

解决方案是

将列的名称从更改stateActivestate_active

注意:没有必要更改spring.datasource.url

spring.datasource.url=jdbc:mysql://a:a@local/c?reconnect=true
于 2021-07-12T22:26:57.817 回答