Адаптер Eclipse Glassfish 3.1 - ошибка SEQUENCE уже существует - PullRequest
0 голосов
/ 20 октября 2011

У меня проблемы с адаптером сервера Eclipse для Glassfish 3.1. Я использую JPA автоматически сгенерированные идентификаторы. Если сервер работает, и у меня есть политика создания и отбрасывания для JPA, то каждый раз, когда происходит горячее повторное развертывание, у меня появляется большое жирное сообщение об ошибке Eclipse:

не удается развернуть ошибку развертывания MyWebApp для модуля: MyWebApp:

PER01003: при развертывании обнаружены исключения SQL: PER01000: получен оператор выполнения SQLException "CREATE TABLE SEQUENCE (SEQ_NAME" VARCHAR (50) NOT NULL, SEQ_COUNT DECIMAL (38), PRIMARY KEY (SEQ_NAME)) ":

org.postgresql.util.PSQLException: ОШИБКА: отношение «последовательность» уже существует

Я знаю, что это всего лишь предупреждение Glassfish (чертовски старый ...: http://java.net/projects/glassfish/lists/persistence/archive/2006-11/message/221) и не опасно (это потому, что drop.ddl удаляет только одну строку таблицы последовательности вместо всей таблицы) ).

Это просто PITA, чтобы видеть эту ошибку всплывающим при каждом сохранении ресурса. Любые идеи, как избавиться от этого, не теряя функциональность создания и удаления? По крайней мере, чтобы это не мешало при разработке ...

Моя настойчивость. Xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0">
    <persistence-unit name="JPATestsCascadePU" transaction-type="JTA">
        <jta-data-source>jdbc/myDB</jta-data-source>
        <properties>
            <property name="eclipselink.ddl-generation" 
                              value="drop-and-create-tables" />
        </properties>
    </persistence-unit>
</persistence>

Примерный объект, использующий автоматически сгенерированный идентификатор:

@Entity
public class Website {

    @Id
    @GeneratedValue
    private long id;

    private String value;

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }    
}

1 Ответ

1 голос
/ 22 октября 2011

Вам не понравится этот ответ: отключите функцию создания и удаления после выполнения первоначального запуска на сервере.

Если честно, создание и удаление, похоже, замедлит перераспределение ... что и происходит при сохранении ресурса.

Вы можете сделать сообщение реже, отключив автоматическую публикацию ...

Примечание. Эта проблема относится к подключаемым модулям GlassFish для Eclipse, выпущенным до 2011-10-24, когда они взаимодействуют с GlassFish Server 3.1.1 и более ранними версиями.

...