База данных H2 пуста и таблицы не отображаются - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь подключиться, выполнить интеграционный тест, и для этого мне понадобится база данных H2 для воссоздания некоторых представлений.

Я использую эти свойства:

<bean id="internalXaDataSource" class="org.h2.jdbcx.JdbcDataSource">
    <property name="URL" value="jdbc:h2:./target/testing/h2db/#{randomUUID1.toString()}/:testdb;MODE=MSSQLServer"/>
    <property name="description" value="#{randomUUID1.toString()}jdbcXa"/>
    <property name="user" value="sa"/>
    <property name="password" value=""/>
</bean>

<bean id="h2Server" class="org.h2.tools.Server" factory-method="createTcpServer" init-method="start" destroy-method="stop">
    <constructor-arg>
        <array>
            <value>-tcp</value>
            <value>-tcpAllowOthers</value>
            <value>-tcpPort</value>
            <value>8043</value>
        </array>
    </constructor-arg>
</bean>

Я пытался подключиться несколькими способами:

Использование отладчика для получения сгенерированного URL

затем подключиться к нему с помощью URL-адреса соединения jdbc, например:

JDBC: h2: ./ цель / тестирование / h2db / # 3434-sdfjsd9o3849-df34 /: TESTDB; MODE = MSSQLServer

У меня успешное соединение, но БД пуста, таблицы не отображаются. Однако использование информационной схемы для получения списка схем в базе данных показывает, что база данных testdb существует.

Через tcp сервер

Я пробовал несколько разных URL, но ни один из них не подключился. например,

JDBC: h2: TCP: // локальный: 8043 / TESTDB: общественности; LOCK_MODE = 0

JDBC: h2: TCP: // локальный: 8043 /: TESTDB; LOCK_MODE = 0

Это хуже - не удается подключиться - просто зависает.

Изменение базового источника данных для запуска на порту

<bean id="internalXaDataSource" class="org.h2.jdbcx.JdbcDataSource" depends-on="h2Server">
<property name="URL" value="jdbc:h2:tcp://localhost:8043/mem:public;MODE=MSSQLServer"/>
<property name="description" value="#{randomUUID1.toString()}jdbcXa"/>
<property name="user" value="sa"/>
< property name="password" value=""/>
</bean>

Это также просто зависает при попытке подключения.

Можете ли вы объяснить, что я делаю не так? Спасибо

1 Ответ

0 голосов
/ 07 ноября 2018

понял это. Приостановил текущий интеграционный тест с помощью отладчика IntelliJ, чтобы я мог подключиться к H2. Однако настройка точки останова была настроена так, чтобы остановить всю JVM. Исправлено редактированием настроек разбивки в IntelliJ, чтобы только приостановить поток. Затем смог подключиться через третий метод выше.

...