我对Glassfish 3.1的Eclipse服务器适配器有一些问题。我正在使用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才会看到此错误弹出窗口。任何想法如何摆脱它而不失去创建和删除功能?至少在发展过程中不要让人不安......
我的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;
}
}
答案 0 :(得分:1)
您不会喜欢这个答案:在初始运行服务器之后关闭创建和删除功能。
说实话,创建和删除似乎会减慢重新部署...这就是保存资源时发生的情况。
您可以通过关闭自动发布来减少消息显示...
注意:此问题适用于2011-10-24之前与GlassFish Server 3.1.1及更年轻版交互时发布的Eclipse的GlassFish集成插件。