Olá, venho depois de muito tentar resolver com a IA Gemini inclusive: O teste do MedicoRepository está dando erro e não identifico o porquê. Ficou identico ao professor, mas não sei se desde a aula e as últimas atualizações está provocando isso. Pois no teste ConsultaControllerTest foi esse o problema e resolvi. Vou publicar o erro para ver se conseguem me ajudar, acredito que possuam acesso ao projeto completo desse curso, a minha API está idêntica. O método está estranho :
private void cadastrarConsulta(Medico medico, Paciente paciente, LocalDateTime data) {
em.persist(new Consulta(null, medico, paciente, data, null));
}
essa declaração está fora de uma variável e é ela quem dá problema:
cadastrarConsulta(medico, paciente, proximaSegundaAs10);
consultas
(data, medico_id, motivo_cancelamento, paciente_id)
values
(?, ?, ?, ?)
2024-09-04T18:44:41.561-03:00 WARN 33032 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1054, SQLState: 42S22 2024-09-04T18:44:41.562-03:00 ERROR 33032 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : Unknown column 'motivo_cancelamento' in 'field list'
org.hibernate.exception.SQLGrammarException: could not execute statement [Unknown column 'motivo_cancelamento' in 'field list'] [insert into consultas (data,medico_id,motivo_cancelamento,paciente_id) values (?,?,?,?)]
Caused by: java.sql.SQLSyntaxErrorException: Unknown column 'motivo_cancelamento' in 'field list' at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912) at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1054) at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1003) at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1312) at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:988) at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:194)
####O meu banco de dados####
mysql> desc consultas; +---------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------------+--------------+------+-----+---------+----------------+ | id | bigint | NO | PRI | NULL | auto_increment | | medico_id | bigint | NO | MUL | NULL | | | paciente_id | bigint | NO | MUL | NULL | | | data | datetime | NO | | NULL | | | motivo_cancelamento | varchar(100) | YES | | NULL | | +---------------------+--------------+------+-----+---------+----------------+ 5 rows in set (0.01 sec)
Fico no aguardo de resposta :)