Я не вижу свои созданные таблицы в HSQLDB, в чем может быть проблема? - PullRequest
0 голосов
/ 09 мая 2018

Моя среда - HSQLDB, Maven и spring-boot. Я создал 2 объекта POJO. Я вижу команду CREATE TABLE в файле testedb.log. Но когда я открываю Data Source Explorer в Eclipse, я не вижу свои таблицы, хотя я вижу все системные таблицы.

Я тоже смотрел на этот вопрос, но не важно: Где я могу увидеть базу данных и таблицы HSQL

Вот мой частичный pom.xml:

<dependency>
        <groupId>org.hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>2.4.0</version>
        <scope>runtime</scope>
</dependency>

Вот мой частичный 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

И ниже мой 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

Пожалуйста, смотрите выше, что CREATE TABLE содержит слово MEMORY , хотя я создал file 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

И, наконец, вот мой скриншот базы данных Обозреватель источников данных

Любой указатель будет потрясающим, спасибо за ваше время.

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

file и mem являются режимами in-process. Для тестирования / отладки, если вам требуется одновременный доступ к данным из другого процесса, запустите базу данных в режиме Server.

Проверьте различные доступные режимы здесь .

0 голосов
/ 10 мая 2018

Мне удалось увидеть таблицы, использующиеся в встроенном интерфейсе HSQLDB, теперь необычный, но он все еще работает для меня.Я использовал следующее [перечисленное в этом ответе https://stackoverflow.com/a/35240141/8610216]

java -cp /path/to/hsqldb.jar org.hsqldb.util.DatabaseManager

И затемукажите путь к вашей базе данных:

jdbc: hsqldb: file: mydb

Была еще одна вещь, которую я делал неправильно;это был путь дб.Правильный путь - spring.datasource.url=jdbc:hsqldb:file:src/main/resources/db/userx;DATABASE_TO_UPPER=false в application.properties.

...