我得到这样的例外......
create table product(
productid int(12) not null AUTO INCREMENT,
// other attributes
PRIMARY KEY(productid)
);
create table seller(
SellerID int(12) not null AUTO INCREMENT,
// other attributes
PRIMARY KEY(SellerID)
);
create table seller_product(
SellerID int(12) not null AUTO INCREMENT,
productid int(12) not null AUTO INCREMENT,
// other attributes
PRIMARY KEY(SellerID,productid),
key `productid_fk` (`productid`),
constraint `productid_fk` FOREIGN KEY (`productid`) REFERENCES `product` (`productid`),
constraint `sellerid_fk` FOREIGN KEY (`sellerid`) REFERENCES `seller` (`SellerID`)
);
我正在开发一个网络应用程序,其中的方案是: 许多卖家都可以销售产品。
我正在努力实现:如果我加载产品对象,那么销售该产品的所有卖家都必须附带产品对象。
表格结构:
package com.mysite.model;
// all import statements
@Entity
@Table(name="product")
public class Product {
@Id
@Column(name="productid")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int productId;
@ManyToMany(cascade = CascadeType.ALL, fetch=FetchType.EAGER)
@JoinTable(name = "SELLER_PRODUCT",
joinColumns = { @JoinColumn(name = "productid")},
inverseJoinColumns = { @JoinColumn(name="sellerid") })
private Set<SellerProduct> seller;
public Set<SellerProduct> getSeller() {
return seller;
}
public void setSeller(Set<SellerProduct> seller) {
this.seller = seller;
}
public int getProductId() {
return productId;
}
public void setProductId(int productId) {
this.productId = productId;
}
// other variables and getter-setters
}
Java代码如下所示:
Product.java
package com.mysite.model;
// all import packages
@Entity
@Table(name="SELLER")
public class Seller {
@Id
@Column(name="SellerID")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int sellerId;
@ManyToMany (mappedBy="seller")
private Set<Product> products = new HashSet<Product>();
public int getSellerId() {
return sellerId;
}
public void setSellerId(int sellerId) {
this.sellerId = sellerId;
}
public Set<Product> getProducts() {
return products;
}
public void setProducts(Set<Product> products) {
this.products = products;
}
// other variables and getter-setters
}
Seller.java
package com.mysite.model;
// all import packages
@Entity
@Table(name="product")
public class SellerProduct {
@EmbeddedId
SellerProductId sellerProductId;
public SellerProductId getSellerProductId() {
return sellerProductId;
}
public void setSellerProductId(SellerProductId sellerProductId) {
this.sellerProductId = sellerProductId;
}
// other variables and getter setters
}
SellerProduct.java
package com.mysite.model;
// all import packages
@Embeddable
public class SellerProductId {
@Column(name="productId")
private int productId;
@Column(name="sellerId")
private int sellerId;
public int getProductId() {
return productId;
}
public void setProductId(int productId) {
this.productId = productId;
}
public int getSellerId() {
return sellerId;
}
public void setSellerId(int sellerId) {
this.sellerId = sellerId;
}
}
SellerProductId.java
mesos-slave.sh --master=xxxx:5050 --resources=ports:80
I0503 20:48:04.999114 2057073408 main.cpp:200] Starting Mesos slave
I0503 20:48:05.000370 243535872 slave.cpp:316] Slave resources: ports(*):80; cpus(*):8; mem(*):15360; disk(*):470848
我在某些映射中错了吗? (我试图在谷歌上搜索,但无法获得成功!)
任何人都可以帮忙????
答案 0 :(得分:0)
最后,我得到了一个解决方案。 提示,我来自the source和First Link
实际上,我试图在双向中实现多对多关系,并在中间表中添加一些附加列。 问题在于我的映射。 我按照Second Link链接中建议的方式完成了映射。