我在 Netbeans 中使用 JPA 2.1 来创建我的实体。如果我的数据库没有表,那么它应该从实体创建表。
当我部署和运行我的企业应用程序时,userEntity 表没有出现在我的 mySQL 数据库中。
这里有什么帮助吗?:)
以下是我的代码。
持久性.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="CommonInfrastructure-ejbPU" transaction-type="JTA">
<jta-data-source>jdbc/commonInfraDatasource</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>
用户实体.java
package entity;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class userEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long systemUserId;
private String userName;
private String password;
private String email;
private int activateStatus;
private String accessGroup;
private int lockOutStatus;
@Override
public int hashCode() {
int hash = 0;
hash += (getSystemUserId() != null ? getSystemUserId().hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the systemUserId fields are not set
if (!(object instanceof userEntity)) {
return false;
}
userEntity other = (userEntity) object;
if ((this.getSystemUserId() == null && other.getSystemUserId() != null) || (this.getSystemUserId() != null && !this.systemUserId.equals(other.systemUserId))) {
return false;
}
return true;
}
@Override
public String toString() {
return "entity.userEntity[id=" + getSystemUserId() + "]";
}
/**
* @return the systemUserId
*/
public Long getSystemUserId() {
return systemUserId;
}
/**
* @param systemUserId the systemUserId to set
*/
public void setSystemUserId(Long systemUserId) {
this.systemUserId = systemUserId;
}
/**
* @return the userName
*/
public String getUserName() {
return userName;
}
/**
* @param userName the userName to set
*/
public void setUserName(String userName) {
this.userName = userName;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @return the email
*/
public String getEmail() {
return email;
}
/**
* @param email the email to set
*/
public void setEmail(String email) {
this.email = email;
}
/**
* @return the activateStatus
*/
public int getActivateStatus() {
return activateStatus;
}
/**
* @param activateStatus the activateStatus to set
*/
public void setActivateStatus(int activateStatus) {
this.activateStatus = activateStatus;
}
/**
* @return the accessGroup
*/
public String getAccessGroup() {
return accessGroup;
}
/**
* @param accessGroup the accessGroup to set
*/
public void setAccessGroup(String accessGroup) {
this.accessGroup = accessGroup;
}
/**
* @return the lockOutStatus
*/
public int getLockOutStatus() {
return lockOutStatus;
}
/**
* @param lockOutStatus the lockOutStatus to set
*/
public void setLockOutStatus(int lockOutStatus) {
this.lockOutStatus = lockOutStatus;
}
}
太阳资源.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Resource Definitions //EN" "http://www.sun.com/software/appserver/dtds/sun-resources_1_3.dtd">
<resources>
<jdbc-resource enabled="true" jndi-name="jdbc/commonInfraDatasource" object-type="user" pool-name="CommonInfraConnectionPool">
<description/>
</jdbc-resource>
<jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="CommonInfraConnectionPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.DataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false">
<property name="URL" value="jdbc:XXXXXXXXXX"/>
<property name="User" value="XXXXXXXXX"/>
<property name="Password" value="XXXXXXXXX"/>
</jdbc-connection-pool>
</resources>
附加信息 我启动 Glassfish 服务器并右键单击并部署我的企业应用程序。这应该在我的数据库中创建 userEntity 表吗?但是,它没有。