日期:2014-05-20  浏览次数:20672 次

编写JPA项目 测试生成数据库表 报错
实体类
package com.yl.jpa;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity
public class Orders {

private String orderId;
private float amount = 0f ;
private Set<OrderItems> items = new HashSet<OrderItems>();
@Id 
public String getOrderId() {
return orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
public float getAmount() {
return amount;
}
public void setAmount(float amount) {
this.amount = amount;
}
@OneToMany(cascade={CascadeType.REFRESH,CascadeType.MERGE,CascadeType.REMOVE,CascadeType.PERSIST},
fetch = FetchType.LAZY,mappedBy = "order")
public Set<OrderItems> getItems() {
return items;
}
public void setItems(Set<OrderItems> items) {
this.items = items;
}

}

package com.yl.jpa;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;


public class OrderItems {

private Integer id;
private String prodouctName;
private float sellPrice = 0f;
private Orders order ;
@Id @GeneratedValue
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(nullable = false,length = 40)
public String getProdouctName() {
return prodouctName;
}
public void setProdouctName(String prodouctName) {
this.prodouctName = prodouctName;
}
public float getSellPrice() {
return sellPrice;
}
public void setSellPrice(float sellPrice) {
this.sellPrice = sellPrice;
}
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},fetch = FetchType.EAGER,optional = false)
@JoinColumn(name = "order_id")
public Orders getOrder() {
return order;
}
public void setOrder(Orders order) {
this.order = order;
}

}

persistence.xml 配置文件
<?xml version="1.0"?>
<persistence 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" version="1.0">
 <persistence-unit name="jpa" transaction-type="RESOURCE_LOCAL">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>
  <properties>
  <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
  <property name="hibernate.connection.driver_class" value="org.gjt.mm.mysql.Driver"/>
  <property name="hibernate.connection.username" value="root"/>
  <property name="hibernate.connection.password" value="sa"/>
  <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/jpa?useUnicode=true&amp;characterEncoding=UTF-8"/>
  <property name="hibernate.max_fetch_depth" value="3"/>
  <property name="hibernate.hbm2ddl.auto" value="update"/>
  <property name="hibernate.jdbc.fetch_size" value="18"/>
  <property name="hibernate.jdbc.batch_size" value="10"/>