我應該檢查服務器啓動時是否存在表。如果它們不存在,我必須使用實體類創建它們。這甚至有可能嗎? 我使用Eclipse,我的服務器是wildfly10。我連接到Oracle 11g XE,但我不認爲這是導致問題如何在服務器啓動時從JPA中的實體類創建表?
反正數據庫,這是我迄今所做
我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="Lab5">
<properties>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
沒有上述屬性,我的數據庫查詢將拋出異常。但真正奇怪的是,使用此屬性查詢返回空列表,但數據庫中不存在表。 另外,我注意到警告顯示在服務器啓動
HHH000431: Unable to determine H2 database version, certain features may not work
我嘗試過各種修復此警告在計算器和其他網站上找到,但他們並沒有幫助。我甚至不知道這是否與我的問題有關
我在Wildfly中指定了數據源,並將它添加到標記後,它現在可以按照預期工作(幾乎)。你知道如果我可以避免異常被拋出,如果表已經存在?我不想使用drop-and-create becouse,如果它已經存在,我不想刪除任何數據 –
newfolder