Java 与JPA won一起冬眠';不创建表

Java 与JPA won一起冬眠';不创建表,java,hibernate,jpa,Java,Hibernate,Jpa,我想使用Hibernate+JPA创建一个表。问题是,每当我运行代码时,它都不会创建任何表。我已经创建了一个空数据库。我使用Hibernate+JPA+HSQL+Maven 这是我的persistence.xml: <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schem

我想使用Hibernate+JPA创建一个表。问题是,每当我运行代码时,它都不会创建任何表。我已经创建了一个空数据库。我使用Hibernate+JPA+HSQL+Maven

这是我的persistence.xml:

<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
以及我的main.java代码:

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.annotations.ForeignKey;
import org.hibernate.validator.NotNull;

@Entity
@Table(name = "products")
public class ProductData extends Entityclass {

private static final long serialVersionUID = 1L;

/*
//Product Addition Time
@NotNull
@Column(name = "added", nullable = false)
private Date productAdded;*/

//Product Name
@NotNull
@Column(name = "productname", nullable = false)
private String productName;

//Product Description
@Column(name = "productdescription", nullable = true)
private String productDescription;

//Product Size
@Column(name = "productsize", nullable = true)
private String productSize;

//Product Amount
@NotNull
@Column(name = "productamount", nullable = false)
private int productAmount;

//Product Left
//Attribute to be calculated in own method
@NotNull
@Column(name = "productleft", nullable = false)    
private int productLeft;

//Product buy price
@NotNull
@Column(name = "productprice", nullable = false)     
private double productPrice;

//Total cost
//Attribute to be calculated in own method
@NotNull
@Column(name = "totalproductprice", nullable = false)
private double totalProductPrice;

//Product sell price
@NotNull
@Column(name = "productsellprice", nullable = false)
private double productSellPrice;

//Product sale
//Attribute to be calculated in own method
@NotNull
@Column(name = "totalsellprice", nullable = false)    
private double totalSellPrice;

//Difference between cost and sale (total)
//Attribute to be calculated in own method
@NotNull
@Column(name = "buyselldifference", nullable = false)    
private double buySellDifference;

//Product status; ordered, at warehouse, reserved.
//Attribute to be calculated in own method
@NotNull
@Column(name = "productstatus", nullable = false)    
private String productStatus;

@Column(name = "reservedproducts", nullable = true)
private int reservedProducts;

/**
 * All Setters and Getters
 * 
 */

/**
 * @return the productName
 */
public String getProductName() {
    return productName;
}

/**
 * @param productName the productName to set
 */
public void setProductName(String productName) {
    this.productName = productName;
}

/**
 * @return the productDescription
 */
public String getProductDescription() {
    return productDescription;
}

/**
 * @param productDescription the productDescription to set
 */
public void setProductDescription(String productDescription) {
    this.productDescription = productDescription;
}

/**
 * @return the productSize
 */
public String getProductSize() {
    return productSize;
}

/**
 * @param productSize the productSize to set
 */
public void setProductSize(String productSize) {
    this.productSize = productSize;
}

/**
 * @return the productAmount
 */
public int getProductAmount() {
    return productAmount;
}

/**
 * @param productAmount the productAmount to set
 */
public void setProductAmount(int productAmount) {
    this.productAmount = productAmount;
}

/**
 * @return the productLeft
 */
public int getProductLeft() {
    return productLeft;
}

/**
 * @param productLeft the productLeft to set
 */
public void setProductLeft(int productLeft) {
    this.productLeft = productLeft;
}

/**
 * @return the productPrice
 */
public double getProductPrice() {
    return productPrice;
}

/**
 * @param productPrice the productPrice to set
 */
public void setProductPrice(double productPrice) {
    this.productPrice = productPrice;
}

/**
 * @return the totalProductPrice
 */
public double getTotalProductPrice() {
    return totalProductPrice;
}

/**
 * @param totalProductPrice the totalProductPrice to set
 */
public void setTotalProductPrice(double totalProductPrice) {
    this.totalProductPrice = totalProductPrice;
}

 /**
 * @return the productSellPrice
 */
public double getProductSellPrice() {
    return productSellPrice;
}

/**
 * @param productSellPrice the productSellPrice to set
 */
public void setProductSellPrice(double productSellPrice) {
    this.productSellPrice = productSellPrice;
}

/**
 * @return the totalSellPrice
 */
public double getTotalSellPrice() {
    return totalSellPrice;
}

/**
 * @param totalSellPrice the totalSellPrice to set
 */
public void setTotalSellPrice(double totalSellPrice) {
    this.totalSellPrice = totalSellPrice;
}

/**
 * @return the buySellDifference
 */
public double getBuySellDifference() {
    return buySellDifference;
}

/**
 * @param buySellDifference the buySellDifference to set
 */
public void setBuySellDifference(double buySellDifference) {
    this.buySellDifference = buySellDifference;
}

/**
 * @return the productStatus
 */
public String getProductStatus() {
    return productStatus;
}

/**
 * @param productStatus the productStatus to set
 */
public void setProductStatus(String productStatus) {
    this.productStatus = productStatus;
}

    /**
 * @return the reservedProducts
 */
public int getReservedProducts() {
    return reservedProducts;
}

/**
 * @param reservedProducts the reservedProducts to set
 */
public void setReservedProducts(int reservedProducts) {
    this.reservedProducts = reservedProducts;
}

/**
 * @return the productSection
 */
public ProductSection getProductSection() {
    return productSection;
}

/**
 * @param productSection the productSection to set
 */
public void setProductSection(ProductSection productSection) {
    this.productSection = productSection;
}

public ProductData(){

}

public ProductData(String productName){
    this.productName = productName;
}

}
    public static void main(String[] args) {

    DataStructureTest testProduct = new DataStructureTest();
    testProduct.testProductData();
}
怎么了?为什么Hibernate不创建所需的表?我尝试过使用hibernate.hbm2ddl.auto,其值为“update”。这没用。

你能试一下吗

<property name="hibernate.hbm2ddl.auto" value="create"/> 


另外,“
transaction type=“RESOURCE\u LOCAL”
是在持久性xml中定义的,我找到了解决方案。由于某种原因,价值

property name=“hibernate.connection.url”value=“jdbc:hsqldb:Warehouse”

不行。因此,我所做的不是创建一个数据库连接,而是创建一个值如下的数据库连接
jdbc:hsqldb:file:[文件夹名称]

此文件夹名称是用户定义的。因此,该行的新代码为:

property name=“hibernate.connection.url”value=“jdbc:hsqldb:file:[文件夹名]”


现在一切都运行顺利,表已创建并更新:)。

是的,我尝试了你的建议,但仍然不起作用。我有,但还是不行。你能试着把JDBCURL改成
jdbc:hsqldb:Warehouse;create=true
<property name="hibernate.hbm2ddl.auto" value="create"/>