如何使用JpaRepository修复错误,请不要保存并且存储库为空

时间:2019-04-03 18:42:09

标签: java spring-boot

我的Spring Boot应用程序需要一些帮助。当我使用@Autowired实例化存储库时,我创建了一个存储库并扩展了JpaRepositoy,我的存储库仍然为空,并且无法保存数据库中的任何数据。

我的控制器

@Controller
public class ListenerURLImpl extends HttpServlet implements ListenerURL {

    private static final long serialVersionUID = 1L;

    @Autowired
    DataBaseConfig dataBaseConfig;

    @Autowired
    ListenerConfig fila;

    @Autowired
    DataRepository repository;

    @Autowired
    SenderDatasImpl senderDatasImpl;

//some another methods
public ResponseEntity<List<DBDados>> inputDados(@Valid @RequestBody DataPegaDTO mensagem,
            DataRepository repository) throws JsonProcessingException {
        try {
            HttpStatus status;
            this.repository = repository;
            status = senderDatasImpl.receiverDatas(mensagem, this.repository);
            if (status == HttpStatus.OK) {
                return new ResponseEntity<>(this.repository.findAll(), HttpStatus.OK);
            } else {
                return null;
            }
        } catch (Exception e) {
            LOGGER.error("Erro ao fazer ao inserir dados no banco de dados {} " + mensagem);
            System.out.println("Erro ao inserir os dados {} " + e);
            return null;
        }
    }

我的存储库

@Repository
public interface DataRepository extends JpaRepository<DBDados, String> {

    @Query(value = "select * from proposta_andamento where id_cliente = :id_cliente", nativeQuery = true)
    List<DBDados> findClient(@Param("id_cliente") String id_cliente);

    @Query(value = "select * from proposta_andamento where proposta = :proposta and produto = :produto", nativeQuery = true)
    List<DBDados> findContrato(@Param("proposta") String proposta, @Param("produto") String produto);

    @Query(value = "select * from proposta_andamento where proposta = :proposta and produto = :produto and subProduto = :subProduto", nativeQuery = true)
    List<DBDados> findAProposal(@Param("proposta") String proposta, @Param("produto") String produto,
            @Param("subProduto") String subProduto);

}

我的类调用了repository.save(Entity)

public HttpStatus receiverDatas(DataPegaDTO data, DataRepository repository) {
        try {
            DBDados save = new DBDados(data);
            DBDados status = null;
            status = repository.save(save);
            if (status != null) {
                System.out.println("Find All -> " + repository.findAll());
                return HttpStatus.OK;
            } else {
                return HttpStatus.ALREADY_REPORTED;
            }
        } catch (Exception e) {
            System.out.println("Erro na hora de salvar no banco de dados: " + e);
            return HttpStatus.BAD_REQUEST;
        }
    }

我应该得到一个HttpStatus.OK的结果,但是我遇到了这个错误:

2019-04-03 15:29:48 WARN  o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 90079, SQLState: 90079
2019-04-03 15:29:48 ERROR o.h.e.jdbc.spi.SqlExceptionHelper - Schema "PROPOSTA_ANDAMENTO" not found; SQL statement:
select dbdados0_.data_inicio as data_ini1_0_0_,...and dbdados0_.proposta=? and dbdados0_.subProduto=? [90079-197]
2019-04-03 15:29:48 INFO  o.h.e.i.DefaultLoadEventListener - HHH000327: Error performing load command : org.hibernate.exception.GenericJDBCException: could not prepare statement
Erro na hora de salvar no banco de dados: org.springframework.orm.jpa.JpaSystemException: could not prepare statement; nested exception is org.hibernate.exception.GenericJDBCException: could not prepare statement
2019-04-03 15:29:48 ERROR b.c.s.e.m.l.r.DataRepository - Proposta já existente no banco! Dados: {}DataPegaDTO(id_cliente=123, produto=produto, subProduto=subproduto, nomeCliente=teste, dataInicio=Fri Mar 22 09:58:48 BRT 2019, dataFim=Fri Mar 22 09:58:48 BRT 2019, dataExpurgo=Fri Mar 22 09:58:48 BRT 2019, id_caso=idCaso, plataforma=plataforma, status=Ativo, fase_negocio=64, contrato=1234567, vl_contrato=10.0, vl_negocio1=11.0, vl_negocio2=12.0, vl_negocio3=13.0, vl_negocio4=14.0, vl_negocio5=0.0, negocio1=negocio1, negocio2=negocio2, negocio3=negocio3, negocio4=negocio4, negocio5=negocio5, negocio6=negocio6, negocio7=negocio7, negocio8=negocio8, negocio9=negocio9, negocio10=negocio10, negocio11=null, negocio12=null, negocio13=null, negocio14=null, negocio15=null, negocio16=null, negocio17=null, negocio18=null, negocio19=null, negocio20=null, id_inclusao=x213432, id_alteracao=null)

1 个答案:

答案 0 :(得分:2)

Schema "PROPOSTA_ANDAMENTO" not found

也许您在连接属性(application.properties文件)中拼写了架构名称吗?