J'utilise spring boot et jpa hibernate pour créer des tables dans ma base de données mais cela lève une exception étrange que je ne comprends pas vraiment.
@Entity public class Option { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; private String marca; private String model; private String anFabrDeLa; private String anFabrPanaLa; private String pretDeLa; private String pretPanaLa; private String oras; private int score; //constructors, getters and setters } Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'option (id integer not null, an_fabr_de_la varchar(255), an_fabr_pana_la varchar' at line 1
J'ai essayé d'utiliser @Column (name = 'quelque chose')
et cela me donne toujours cette erreur étrange ...
3 Réponses :
option et options sont des mots-clés utilisés par MySQL. Veuillez utiliser un nom différent. https://dev.mysql.com/doc/refman/8.0/ fr / keywords.html
Comme les gens l'ont déjà dit, vous utilisez un mot-clé réservé MySql pour le nom de votre table. Si vous souhaitez conserver le nom de votre classe mais que vous souhaitez renommer votre table, vous devez ajouter
@Table(name="`option`") @Entity public class Option { ... }
Ou si vous souhaitez vraiment conserver à la fois le nom de la classe et le nom de la table, vous devez mettre le nom de la table entre `marques:
@Table(name="something") // This will explicitly set the table name. @Entity public class Option { ... }