Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

255
Vistas
Columna desconocida de JPA en la lista de campos

Tengo una relación entre las clases de Accommodation y Booking , y también establecí una clave externa en la tabla de reserva.

 ALTER TABLE `project`.`booking` ADD INDEX `fk_accId_fk_idx` (`accommodation` ASC); ALTER TABLE `project`.`booking` ADD CONSTRAINT `fk_accId_fk` FOREIGN KEY (`accommodation`) REFERENCES `project`.`accommodation` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;

Clase de alojamiento:

 @Entity .... public class Accommodation implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", unique = true, nullable = false) private BigInteger id; @OneToMany(mappedBy = "accommodation", fetch = FetchType.EAGER, cascade = CascadeType.REMOVE) @JsonManagedReference private List < Booking > bookings; ......getters setters }

Clase de reserva:

 @Entity public class Booking implements Serializable { ...... @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "bookings", nullable = true) @JsonBackReference private Accommodation accommodation; ....getters setters }

Cuando ejecuto una consulta para enumerar alojamientos, aparece un error de columna desconocida en la lista de campos.

javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: no se pudo extraer ResultSet] con causa raíz com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: columna desconocida 'bookings7_.bookings' en 'field list'

Incluso establecí la relación y definí la clave externa en la tabla, ¿cuál es la razón por la que recibo este error?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Intente definir su mapeo de tablas de unión manualmente en JPA. Suelta tu esquema y deja que JPA cree tus tablas:

clase de alojamiento

 @OneToMany(mappedBy = "accommodation", fetch = FetchType.EAGER, cascade = CascadeType.REMOVE) @JsonManagedReference private List < Booking > bookings;

clase de reserva

 @ManyToOne(fetch = FetchType.EAGER) @JoinTable(name = "accommodation_booking_join_table", joinColumns = {@JoinColumn(name="booking_id")}, inverseJoinColumns = @JoinColumn(name = "accommodation_id")) @JsonBackReference private Accommodation accommodation;
about 4 years ago · Santiago Trujillo Denunciar

0

Intente cambiar los nombres de sus columnas a minúsculas en su base de datos y clase de entidad.

about 4 years ago · Santiago Trujillo Denunciar

0

Tuve una situación como esa y la resolví cambiando la posición del campo en la consulta. Parece que es un error de MySQL, como (o el mismo que) el mencionado en esta publicación:

https://bugs.mysql.com/bug.php?id=1689

La descripción de este error de MySQL mencionaba una solución alternativa similar: "Descubrí que al intercambiar la posición de ese campo en la tabla con otro campo funcionaba bien".

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda