我在 HSQLDB 中看不到我创建的表,可能是什么问题?

sho*_*uck 5 hsqldb maven spring-boot

我的环境是HSQLDB、Maven和spring-boot。我创建了 2 个实体 POJO。我确实看到文件CREATE TABLE下的命令testedb.log。但是当我Data Source Explorer在 Eclipse 中打开时,我看不到我的表,尽管我确实看到了所有系统表。

我也看过这个问题,但没有用:Where can I see the HSQL database and tables

这是我的部分pom.xml:

<dependency>
        <groupId>org.hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>2.4.0</version>
        <scope>runtime</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这是我的部分 application.properties

# DataSource
#spring.datasource.driverClassName=org.hsqldb.jdbc.JDBCDriver
spring.datasource.url=jdbc:hsqldb:file:resources/db/testedb;DATABASE_TO_UPPER=false
#spring.datasource.url=jdbc:hsqldb:mem:memTestdb
spring.datasource.username=sa
spring.datasource.password=

# Hibernate
spring.jpa.show-sql=true
#spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.hibernate.ddl-auto=create
Run Code Online (Sandbox Code Playgroud)

下面是我在磁盘上创建的 HSQLDB:

我工作区中的 HSQLDB 文件夹 这是我的 部分 testedb.script

SET FILES LOG SIZE 50
CREATE USER SA PASSWORD DIGEST 'd41d8cd98f00b204e9800998ecf8427e'
ALTER USER SA SET LOCAL TRUE
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
SET SCHEMA PUBLIC
CREATE SEQUENCE PUBLIC.HIBERNATE_SEQUENCE AS INTEGER START WITH 1
CREATE MEMORY TABLE PUBLIC.ENQUIRY_HISTORY(ID BIGINT NOT NULL PRIMARY  KEY,FROM_AMOUNT DOUBLE NOT NULL,FROM_CURRENCY VARCHAR(255) NOT NULL,QUERY_DATE TIMESTAMP NOT NULL,TO_AMOUNT DOUBLE NOT NULL,TO_CURRENCY VARCHAR(255) NOT NULL,USER_ID BIGINT NOT NULL,VERSION INTEGER NOT NULL)
CREATE MEMORY TABLE PUBLIC.USERS(ID BIGINT NOT NULL PRIMARY KEY,EMAIL VARCHAR(255) NOT NULL,LAST_LOGIN TIMESTAMP NOT NULL,PASSWORD VARCHAR(255) NOT NULL,VERSION VARCHAR(255) NOT NULL)
ALTER SEQUENCE SYSTEM_LOBS.LOB_ID RESTART WITH 1
ALTER SEQUENCE PUBLIC.HIBERNATE_SEQUENCE RESTART WITH 1
SET DATABASE DEFAULT INITIAL SCHEMA PUBLIC
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.SQL_IDENTIFIER TO PUBLIC
Run Code Online (Sandbox Code Playgroud)

请参阅上面CREATE TABLE包含单词MEMORY即使我已经创建了文件DB。

并通过testsdb.log

/*C12*/SET SCHEMA PUBLIC
drop table enquiry_history if exists
drop table users if exists
drop sequence hibernate_sequence if exists
create sequence hibernate_sequence start with 1 increment by 1
create table enquiry_history (id bigint not null, from_amount float not null, from_currency varchar(255) not null, query_date timestamp not null, to_amount float not null, to_currency varchar(255) not null, user_id bigint not null, version integer not null, primary key (id))
create table users (id bigint not null, email varchar(255) not null, last_login timestamp not null, password varchar(255) not null, version varchar(255) not null, primary key (id))
/*C14*/SET SCHEMA PUBLIC
DISCONNECT
/*C17*/SET SCHEMA PUBLIC
Run Code Online (Sandbox Code Playgroud)

最后这是我的数据库数据源资源管理器的屏幕截图

任何指针都会很棒,感谢您的时间。

sho*_*uck 1

我能够看到在构建 HSQLDB 界面中使用的表,现在是一个奇特的界面,但它仍然对我有用。我使用了以下内容[在此答案中列出/sf/answers/2466809901/]

java -cp /path/to/hsqldb.jar org.hsqldb.util.DatabaseManager 
Run Code Online (Sandbox Code Playgroud)

然后指定数据库路径:

jdbc:hsqldb:file:mydb
Run Code Online (Sandbox Code Playgroud)

我还有一件事做错了;这是数据库的路径。正确的路径位于spring.datasource.url=jdbc:hsqldb:file:src/main/resources/db/userx;DATABASE_TO_UPPER=falseapplication.properties 中。