我想設置一個基本的JPA應用程序,它在mySQL中創建一個簡單的表。EclipseLink/MySQL/Glassfish - 即使連接工作正常,表格也不會創建
我使用glassfish 4.1,我創建了連接池/資源併成功從管理面板中ping數據庫。
我創建了一個web應用程序項目,其中包含一個簡單的實體和src/META-INF文件夾下的persistence.xml。
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="DataPersistencePU" transaction-type="JTA">
<jta-data-source>mysqlresource</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
與實體文件,
@Entity
public class DataProvider implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof DataProvider)) {
return false;
}
DataProvider other = (DataProvider) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "Entity.DataProvider[ id=" + id + " ]";
}
}
我也試過在/ WEB-INF移動persistence.xml中,仍無法治癒。
Glassfish日誌中沒有錯誤。 我只是想讓eclipseLink工作並自動生成表格。
好的問這裏明顯。你是否在應用程序的某個地方創建了「EntityManager」? – Ranjeet