1
votes

Hibernate a-t-il une condition spécifique pour nommer les colonnes commençant par la même lettre?

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 ...


0 commentaires

3 Réponses :




1
votes

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 {
   ...
}


0 commentaires