Maison >Java >javaDidacticiel >Pourquoi l'erreur « Table introuvable » se produit-elle avec la base de données en mémoire H2 et comment y remédier ?
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!