Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

253
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!