我应该检查服务器启动时是否存在表。如果它们不存在,我必须使用实体类创建它们。这甚至有可能吗? 我使用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