Comment utiliser le mot clé réservé à la base de données dans Hibernate?

Comment utiliser le mot-clé réservé à la base de données dans Hibernate?

Dans Hibernate, lorsque vous essayez d'enregistrer un objet dans une table avec n'importe quel mot clé réservé à la base de données comme nom de colonne, vous pouvez rencontrer l'erreur suivante…

ERROR JDBCExceptionReporter:78 - 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 'Datadabase reserved keyword....

Mot clé réservé "DESC"

Dans MySQL, "DESC" est le mot-clé réservé. Voyons quelques exemples pour montrer comment utiliser ce mot clé réservé dans Hibernate.

Hibernate XML Mapping file

Il s'agit de l'implémentation de fichier de mappage XML par défaut pour une colonne de table, cela provoquera JDBCException…

        
            
        

Solution

1. Mettez le mot clé entre crochets [].

        
            
        

2. Utilisez des guillemets simples (‘) pour entourer les guillemets doubles (“)

        
            
        

Hibernate Annotation

Il s'agit de l'implémentation d'annotation par défaut pour une colonne de table, elle provoquera JDBCException…

        @Column(name = "DESC", nullable = false)
    public String getDesc() {
        return this.desc;
    }

Solution

1. Mettez le mot clé entre crochets [].

        @Column(name = "[DESC]", nullable = false)
    public String getDesc() {
        return this.desc;
    }

2. Utilisez des guillemets doubles («) pour le joindre.

        @Column(name = "\"DESC\"", nullable = false)
    public String getDesc() {
        return this.desc;
    }

Conclusion

Cette même solution peut également s'appliquer au mot clé réservé comme nom de table.