我使用netbeans 6.9.1, Glassfish 3.1。我正在尝试写一些值到MYSQL表。
可以工作,记录被保存到表中,没有问题。但是每次当我重新启动glassfish或构建项目时,MySQL表中保存的所有数据都会被擦除。我怎样才能避免这种情况呢?
我已经使用实体bean和持久性创建表(自动生成表)
@Entity
public class HotelVacancy implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToOne (cascade=CascadeType.ALL)
private Hotel hotId;
private int noVancies;
public Long getId() {
return id;
}
...
如何解决这个问题
当您的persistence.xml
中有以下(或类似)行:
<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
删除它。
你正在使用hibernate吗??
您是否碰巧有一个名为hibernate.hbm2ddl的属性?自动写入persistence.xml文件??
如果是,注释掉,或者从xml文件中完全删除这个属性!
您的JPA提供者是否创建了数据库表?如果是,他可能仍然在每次应用程序启动时重新创建它们。如果您的模型是稳定的,请禁用此过程。