Junit HSQLDB - utilisateur ne dispose pas d'un privilège ou d'objet non trouvé - THIS_.oh-ordnbr
Je suis une exception lors de mon nom de colonne contient trait d'union "-"
Entity : this is the entity name.
@Entity
@Table(name = "RequestHeader")
public class RequestHeader implements Serializable {
....
....
@Column(name = "`oh-ordnbr`")
private Integer ohOrdnbr;
Schéma de définition: C'est la requête pour la création du schéma de la.
CREATE MEMORY TABLE PUB.REQUESTHEADER(
REQUESTID INTEGER,
IMUSERID INTEGER,
REQUESTDATE DATE,
REQUESTTIME INTEGER,
REQUESTSTATUS VARCHAR(19),
REQUESTTYPE VARCHAR(22),
HEADERINSTRUCTIONS VARCHAR(5150),
DATEFORMAT VARCHAR(20),
TIMEFORMAT VARCHAR(20),
LANGUAGEID INTEGER,
"OH-ORDNBR" INTEGER,
"OH-TRCNSTAMP" INTEGER,
ISPICKUPLIST BIT(1),
CONSTRAINT "RQH-1" PRIMARY KEY(REQUESTID)
);
L'erreur est ci-dessous:
Exception Stack: Error message which I have received by running the Junit.
Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: THIS_.oh-ordnbr
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.ExpressionColumn.checkColumnsResolved(Unknown Source)
at org.hsqldb.QueryExpression.resolve(Unknown Source)
at org.hsqldb.ParserDQL.compileCursorSpecification(Unknown Source)
at org.hsqldb.ParserCommand.compilePart(Unknown Source)
at org.hsqldb.ParserCommand.compileStatement(Unknown Source)
at org.hsqldb.Session.compileStatement(Unknown Source)
at org.hsqldb.StatementManager.compile(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
Peut-on m'aider à résoudre cela?
Avez-vous vérifié la documentation de HSQLDB? Je pense que les noms de colonnes dans les guillemets peuvent être sensibles à la casse. Avez-vous vraiment besoin des traits d'union? Je les changer par des traits de soulignement, qui est la norme SQL de toute façon...
Correct. Merci de poster une réponse. Aussi THIS_ ne doit pas être utilisé comme nom de la table.
Correct. Merci de poster une réponse. Aussi THIS_ ne doit pas être utilisé comme nom de la table.
OriginalL'auteur Ram Subramanian | 2015-04-27
Vous devez vous connecter pour publier un commentaire.
La raison de la objet non trouvé d'erreur est le fait que les oh-ordnbr colonne est définie de manière à être sensible à la casse (ce qui est dû à la double citations vous mettre autour d'elle).
Vous avez deux solutions possibles:
Mise à jour de l'APP annotation comme suit:
Je recommande fortement d'utiliser des caractères de soulignement au lieu de tirets, vous ne savez jamais ce sentiment bizarre que les différentes implémentations JPA pourrait avoir lors de l'utilisation de la deuxième solution.
OriginalL'auteur RudolphEst
Vérifiez votre fichier de configuration est correcte fournisseur, j'ai résolu le même problème en fournissant des org.mise en veille prolongée.ejb.HibernatePersistence fournisseur.
OriginalL'auteur Jayen Chondigara
Si HSQL Scripts sont exécutés via Java et si tout nouvelle table de requête est suivie par sélection/modifier/requêtes de mise à jour, il jette toujours "utilisateur ne dispose pas d'objet privilège". En réalité, la création de requêtes après l'exécution avec les rapports de Java n'est jamais engagée dans la base et il n'est pas conservée et nous courons à notre sélection/modifier/mettre à jour et il en résulte que l'exception. Si l'on exécute les requêtes, ligne par ligne, et de s'engager pour chaque ligne, on pourrait éviter cette erreur.
OriginalL'auteur Narendran Solai Sridharan