Maison  >  Article  >  Java  >  Pourquoi l'erreur « Table introuvable » se produit-elle avec la base de données en mémoire H2 et comment y remédier ?

Pourquoi l'erreur « Table introuvable » se produit-elle avec la base de données en mémoire H2 et comment y remédier ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 03:21:03880parcourir

 Why does

Base de données en mémoire H2 : résolution de l'erreur « Table introuvable »

Lors de l'utilisation d'une base de données en mémoire H2 avec l'URL "jdbc:h2:mem:test", les utilisateurs peuvent rencontrer l'erreur "Table 'PERSON' introuvable" lorsqu'ils tentent de sélectionner des données dans une table créée précédemment. Cette erreur se produit car, par défaut, H2 ferme la connexion à la base de données après la création de la table à l'aide de la fonctionnalité hbm2ddl d'Hypernate.

Pour résoudre ce problème et préserver le contenu de la base de données, modifiez l'URL de connexion au format suivant :

<code class="text">jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</code>

Ce paramètre demande à H2 de garder la base de données en mémoire ouverte tant que la machine virtuelle Java (JVM) est en cours d'exécution. En ajoutant un point-virgule (;) au lieu de deux points (:) entre l'URL et le paramètre, vous pouvez spécifier des paramètres supplémentaires.

Comme l'indique la documentation, "la fermeture de la dernière connexion à une base de données ferme la base de données. Pour une base de données en mémoire, cela signifie que le contenu est perdu." En définissant le paramètre DB_CLOSE_DELAY=-1, vous vous assurez que la base de données reste ouverte jusqu'à la fin de la JVM, préservant les données même après la fermeture de la connexion.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn