Автоматическое создание таблиц в базе данных PostgreSQL из определенных объектов - PullRequest
1 голос
/ 02 апреля 2020

Я использовал Apache Derby в качестве базы данных для школьного проекта, но я хочу переключиться на PostgreSQL для моего нового личного проекта, поскольку, насколько я понял, он намного лучше в производстве окружающая обстановка. Я пытаюсь создать RESTAPI на Джерси, работающем на сервере Paraya.

В моем последнем проекте с использованием базы данных Derby Apache все таблицы создавались автоматически из сущностей при развертывании. Однако я не могу заставить это работать с базой данных PostgreSQL. Это невозможно или я что-то не так делаю? Если я что-то делаю неправильно, я предполагаю, что ошибка заключается в файле постоянства. xml (возможно, в файле glassfi sh -resources. xml).

постоянство. xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
    <persistence-unit name="WikiDB" transaction-type="JTA">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <properties>
            <property name="javax.persistence.target-database" value="PostgreSQL" />
            <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/wiki"/>
            <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
            <property name="javax.persistence.jdbc.user" value="john.blaberg"/>
            <property name="javax.persistence.jdbc.password" value=""/>
            <property name="eclipselink.ddl-generation" value="create-or-extend-tables"/>
            <property name="eclipselink.ddl-generation.output-mode" value="database"/>
        </properties>
    </persistence-unit>
</persistence>

glassfi sh -ресурсы. xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//Payara.fish//DTD Payara Server 5 Resource Definitions//EN"
        "https://raw.githubusercontent.com/payara/Payara-Server-Documentation/master/schemas/payara-resources_1_6.dtd">
<resources>
    <jdbc-connection-pool datasource-classname="org.postgresql.ds.PGConnectionPoolDataSource"
                          res-type="javax.sql.ConnectionPoolDataSource">
        <property name="serverName" value="localhost"/>
        <property name="portNumber" value="5432"/>
        <property name="databaseName" value="wiki"/>
        <property name="Account Name" value="test_username"/>
        <property name="Password" value="test_password"/>
        <property name="driverClass" value="org.postgresql.Driver"/>
    </jdbc-connection-pool>
    <jdbc-resource enabled="true" jndi-name="jdbc/wiki"
                   object-type="user" pool-name="PostPool"/>
</resources>

И моя сущность:

@Data
@Entity
@NoArgsConstructor
public class Brand {
    @Id @GeneratedValue
    private Long id;
    private String brandName;

    public Brand(String brandName){
        this.brandName = brandName;
    }
}

Я не получаю сообщений об ошибках, когда я развертывание приложения.

...