2011-10-20 55 views
0

我在Glassfish 3.1的Eclipse服務器適配器上遇到了一些問題。我正在使用JPA自動生成的標識符。如果服務器正在運行,並且我有一個JPA創建和丟棄策略,比每次發生的熱部署我有我的臉上泛起一塊大肥肉Eclipse的錯誤消息時:Eclipse Glassfish 3.1適配器 - SEQUENCE已存在錯誤

cannot Deploy MyWebApp Deployment Error for module: MyWebApp:

PER01003: Deployment encountered SQL Exceptions: PER01000: Got SQLException executing statement "CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT DECIMAL(38), PRIMARY KEY (SEQ_NAME))":

org.postgresql.util.PSQLException: ERROR: relation "sequence" already exists

我知道這只是一個Glassfish警告(該死的老...:http://java.net/projects/glassfish/lists/persistence/archive/2006-11/message/221)並不危險(這是因爲drop.ddl刪除了一個序列表行而不是整個表)。

這只是一個PITA,每次保存資源時都會彈出一個錯誤消息。任何想法如何擺脫它而不失去創建和放置功能?至少使在開發它不打擾...

我的persistence.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> 

示範實體使用自動生成的ID:

@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

你不會喜歡這樣的回答:轉在初始運行服務器之後,關閉創建和刪除功能。

說實話,創建和放棄似乎會減緩重新部署...這是當您保存資源時發生的情況。

可以使消息通過關閉自動發佈較少出現...

注:此問題適用於當他們與GlassFish應用服務器3.1互動2011-10-24之前發佈的GlassFish集成的Eclipse插件。 1和更年輕。

+0

謝謝@vkraemer!重新部署的放緩可能是正確的。但是,我使用此設置來動態測試JPA映射,驗證以及與事務的交互。這些類型的應用程序非常小 - 我將它們當作煙霧測試對待,因此我真的很喜歡這種乾淨的重新創建功能,並在每次「保存」時自動發佈。它允許我在更改的類上點擊ctrl + s並忘記其餘的。 我會熱切期待星期一:-)再次感謝! –

+0

添加後,插件就像一個魅力。非常感謝文斯! –

+0

我將Glassfish 3.1.2與ant一起使用,部署並重新部署我的類,所以此錯誤似乎也適用於最新版本的Glassfish。 – lanoxx

相關問題