Je rencontre un problème avec mon ORMLite package. Lorsque j'ai généré le schéma d'une table, j'ai pensé que ce serait une bonne pratique d'échapper à tous les noms d'entités. Cela protégerait une classe Java ou nom de champ d'être un mot réservé SQL:Problèmes avec les noms de tables et de champs d'échappement dans Derby et Hsqldb
CREATE TABLE "footable" ("stuff" VARCHAR(255))
Je suis maintenant d'ajouter le support de requête « brut » de sorte que ORMLite peut aider les utilisateurs à effectuer leurs propres requêtes. Cependant, je trouve qu'avec Derby et Hsqldb, les noms d'entités ne peuvent pas être utilisés sans s'échapper. Par exemple, la requête suivante:
SELECT * FROM footable
génère les erreurs suivantes:
Derby: ERROR 42X05: Table/View 'FOOTABLE' does not exist.
Hsqldb: Table not found in statement [select * from footable]
Il fonctionne très bien si la table de sélection est également échappé comme "footable"
. Les autres bases de données prises en charge par ORMLite fonctionnent correctement avec ou sans l'échappement: MySQL, Postgres, Microsoft SQL Server, H2 et Sqlite. Y at-il de meilleurs moyens d'échapper des mots réservés dans Derby et Hsqldb?
D'autres idées sur la façon de le faire de manière portable?
Merci.
Merci pour ce Bryan. J'utilisais le même cas dans les instructions CREATE et SELECT donc votre réponse ne semblait pas appropriée au départ. Cependant, je vois maintenant (selon ma réponse ci-dessous) que c'était un problème, juste parce que Derby et Hsqldb faisaient la promotion des noms sans guillemets pour qu'ils soient tous en majuscules. – Gray