Saltar al contenido

Spring Boot – Hibernate – La tabla no existe

Ya no necesitas buscar más por otras webs porque llegaste al sitio justo, contamos con la solución que necesitas hallar sin complicarte.

Solución:

La respuesta real (para mí) que puede ayudar a alguien es no usar una estrategia de nomenclatura implícita en absoluto. Si solo desea usar lo que está anotado en la clase de entidad, use uno físico como este:

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

Gracias a la respuesta de @rsinha aquí:

Estrategia de nomenclatura de Hibernate que cambia los nombres de las tablas

Spring Boot – Hibernate – La tabla no existe

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'mydb.user' **doesn't exist**

Considero el problema con su programa @EntityScan(basePackages = “com.third.party.entity.paquete“) es incorrecto donde paquete no es aceptable como nombre de paquete en Java.

Más

Asegúrate de que tu entidad pojo usuario la clase está bien definida

@Entity
@Table(name = "User")
public class User implements Serializable 
    private static final long serialVersionUID = 1L;
    ...
    

Intente agregar el código de línea debajo en aplicación.propiedades y correr

aplicación.propiedades

# Hibernate ddl auto (create, create-drop, update, none): with "update" the database
# schema will be automatically updated accordingly to java entities found in the project
spring.jpa.hibernate.ddl-auto = update

Y excluya la clase de configuración automática de Hibernate en caso de que esté allí, agregando la anotación a continuación

@SpringBootApplication(exclude=HibernateJpaAutoConfiguration.class)

Esta pregunta es similar a Hibernate dice que la tabla no existe pero existe

Tuve el mismo problema, pero una solución diferente: aparentemente, Hibernate/JPA pone en minúsculas todas las letras en el nombre de la tabla. Así que incluso si mi mesa fuera User Y yo tenía

@Entity
@Table(name = "User")
public class OfficeUser 
...

Todavía obtendría el error diciendo:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'doctors_office.user' doesn't exist

La solución para mí fue cambiar el nombre de la tabla en DB de User a user (mayúsculas -> minúsculas)

NOTA: estaba usando un nombre de entidad diferente para mi tabla (es por eso que tengo OfficeUser como nombre de clase y nombre de tabla diferente)

Aquí tienes las reseñas y valoraciones

Al final de todo puedes encontrar las notas de otros usuarios, tú además tienes el poder insertar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *