hsqldb rapports “utilisateur ne dispose pas d'un privilège ou d'objet non trouvé” dans la mémoire de la base de données

De L'Environnement: Le Printemps(3.2.3.La LIBÉRATION) + MyBatis(3.2.2) + HSQL(2.3.0)

<resultMap id="hashMapResult" type="java.util.HashMap">
    <result property="key" column="key" />
    <result property="value" column="value" />
</resultMap>

<select id="getSettings" resultMap="hashMapResult">
    SELECT "KEY","VALUE" from "PUBLIC"."SETTINGS";
</select>

     create table "SETTINGS" (
    "KEY" varchar(255) not null,
    "VALUE" varchar(512) not null,
    CONSTRAINT SETTINGS_KEY_UNIQUE UNIQUE("KEY")
     );

URL: jdbc:hsqldb:mem:mydb;sql.syntax_mys=true;arrêt=true;

Lors de l'utilisation de la mémoire de base de données, le message suivant est apparu:

Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: SETTINGS
at org.hsqldb.error.Error.error(Unknown Source) ~[hsqldb-2.3.0.jar:2.3.0]
at org.hsqldb.error.Error.error(Unknown Source) ~[hsqldb-2.3.0.jar:2.3.0]
at org.hsqldb.SchemaManager.getTable(Unknown Source) ~[hsqldb-2.3.0.jar:2.3.0]
at org.hsqldb.ParserDQL.readTableName(Unknown Source) ~[hsqldb-2.3.0.jar:2.3.0]
at org.hsqldb.ParserDQL.readTableOrSubquery(Unknown Source) ~[hsqldb-2.3.0.jar:2.3.0]
at org.hsqldb.ParserDQL.XreadTableReference(Unknown Source) ~[hsqldb-2.3.0.jar:2.3.0]

Mais lors de l'utilisation de fichier de base de données jdbc:hsqldb:fichier:mydb;sql.syntax_mys=true;arrêt=true; pas d'erreurs.

Je suis à l'aide du Printemps EmbeddedDatabaseFactory pour initialiser la base de données:

    try {
        EmbeddedDatabaseFactory dbFactory = new EmbeddedDatabaseFactory();
        DatabaseConfig dbConfig = appConfig.getDbConfig();
        ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
        populator.setContinueOnError(false);
        populator.setIgnoreFailedDrops(false);
        DefaultResourceLoader resourceLoader = new DefaultResourceLoader();
        populator.addScript(resourceLoader.getResource(dbConfig
                .getSqlSchemeFile()));
        populator.addScript(resourceLoader.getResource(dbConfig
                .getSqlDataFile()));
        dbFactory.setDatabasePopulator(populator);
        dbFactory.setDatabaseName(dbConfig.getName());
        dbFactory.setDatabaseConfigurer(new HSQLConfigurer(dbConfig));
        return dbFactory.getDatabase();
    } catch (Exception e) {
        logger.error("dataSource error", e); //$NON-NLS-1$

        return null;
    }

Quelqu'un sait pourquoi?

OriginalL'auteur SunLiWei | 2013-08-12