1
我想在冬眠和春季做一個多對多的關係。下面休眠錯誤無效的列名
是我的產品類代碼如下
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name="Product")
public class Product implements Serializable{
@Id
@Column(name="productId")
@GeneratedValue
private Integer productId;
@Column(name="productName")
private String productName;
@Column(name="productPrice")
private int productPrice;
//---------------------------------------item mapped to category------------------------------------------//
@ManyToOne(cascade = CascadeType.ALL,fetch = FetchType.EAGER)
@JoinTable(
name="CategoryProduct",
joinColumns= @JoinColumn(name="productId")
)
private Category category;
//--------------------------------------------------------------------------------------------------------//
public Integer getProductId() {
return productId;
}
public void setProductId(Integer productId) {
this.productId = productId;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public int getProductPrice() {
return productPrice;
}
public void setProductPrice(int productPrice) {
this.productPrice = productPrice;
}
public Category getCategory() {
return category;
}
public void setCategory(Category category) {
this.category = category;
}
}
是我的類類
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import java.io.Serializable;
@Entity
@Table(name="Category")
public class Category implements Serializable{
@Id
@Column(name="categoryId")
@GeneratedValue
private Integer categoryId;
@Column(name="categoryName")
private String categoryName;
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
@JoinTable(
name="CategoryProduct",
joinColumns = @JoinColumn(name="categoryId"),
inverseJoinColumns = @JoinColumn(name="productId")
)
public Set<Product> product;
public Integer getCategoryId() {
return categoryId;
}
public void setCategoryId(Integer categoryId) {
this.categoryId = categoryId;
}
public String getCategoryName() {
return categoryName;
}
public void setCategoryName(String categoryName) {
this.categoryName = categoryName;
}
public Set<Product> getProduct() {
return product;
}
public void setProduct(Set<Product> product) {
this.product = product;
}
}
每當我運行的代碼我收到無效的列名稱代碼「category_categoryId」。我的表的
結構 產品具有 類別有作爲的categoryId,類別名稱列列的productId,poductName和productPrice categoryproducts具有的列的categoryId和的productId
謝謝,該解決方案爲我工作。由於我是Hibernate的一名新手,我會審查設計並考慮您的想法。 – user3509208