Я развертываю свое веб-приложение на сервере WildFly 8.02 Final. Я использую по умолчанию из коробки DataSource, который поставляется с сервером с JNDI пространства имен:Где мои таблицы в H2?
java:jboss/datasources/ExampleDS
, и я использую по умолчанию URL:
jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
доступ H2 из инструмента IntelliJ клиента базы данных IDEA или другого клиента приложений (я использую соединение url, потому что соединение tcp через порт по умолчанию не работает).
Приложение представляет собой пустую WAR с только объектными компонентами и файлом persistence.xml. Я намерен проверить, какие таблицы будут созданы в базовом источнике данных в соответствии с моими аннотациями.
Вот вещь: когда я установил в persistence.xml:
<property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
война успешно развернута, но при подключении с помощью любого клиентского инструмента к источнику данных H2 я могу видеть только заранее определенные таблицы после:
SELECT * FROM INFORMATION_SCHEMA.TABLES
Я могу создавать таблицы через клиентские инструменты, и я могу отслеживать их существование по предыдущему SQL-запросу. Таким образом, кажется, что таблицы просто не были созданы рамкой JPA.
Но когда я изменяю persistence.xml в другой режим создания схемы:
<property name="javax.persistence.schema-generation.database.action" value="create"/>
Развертывание проваливается с JDBC исключение, сообщающее, что JPA пытается создать уже существующие таблицы, но в то же время клиентские инструменты до сих пор не показывать созданные пользователем таблицы.
Thx.
Великий, ТНХ много. Теперь, по крайней мере, я понимаю, что происходит, надеюсь, что я смогу настроить базу данных Wildfly по умолчанию для работы в качестве TCP-сервера. – Ivan