Pokusavam da resim problem u vezi baze.Radi se o EJB i SEAM teh. Imam Product klasu koju bih trebao rekurzivno povezati sa samom sobom.Recimo, da svaki product ima accessories , a accessories je product.Moj code izgleda ovako:
Code:
Entity
@Table(name="product")
public class Product extends PersistableObject {
private String productName;
private String description;
private double price;
private double lastPrice=0;
private String image=null;
//private Product product;
private List<ProductProperty> properties;
private List<ProductBasket> productBaskets;
private Category category;
private boolean active;
private List<Promotion> promotions;
private List<Product>accessories;
public Product(){}
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
}
/**
* get description name
* @return String description
*/
public String getDescription() {
return description;
}
/** set description*/
public void setDescription(String description) {
this.description = description;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
@OneToMany(mappedBy="product")
public List<ProductBasket> getProductBaskets() {
return productBaskets;
}
public void setProductBaskets(List<ProductBasket> productBaskets) {
this.productBaskets =productBaskets;
}
public void setLastPrice(double lastPrice) {
this.lastPrice = lastPrice;
}
@OneToMany(mappedBy="product")
public List<Promotion> getPromotions() {
return promotions;
}
public void setPromotions(List<Promotion> promotions) {
this.promotions = promotions;
}
@OneToMany
public List<Product> getAccessories() {
return accessories;
}
public void setAccessories(List<Product> accessories) {
this.accessories = accessories;
}
/*
@ManyToOne
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
*/
}
Entity
@Table(name="product")
public class Product extends PersistableObject {
private String productName;
private String description;
private double price;
private double lastPrice=0;
private String image=null;
//private Product product;
private List<ProductProperty> properties;
private List<ProductBasket> productBaskets;
private Category category;
private boolean active;
private List<Promotion> promotions;
private List<Product>accessories;
public Product(){}
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
}
/**
* get description name
* @return String description
*/
public String getDescription() {
return description;
}
/** set description*/
public void setDescription(String description) {
this.description = description;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
@OneToMany(mappedBy="product")
public List<ProductBasket> getProductBaskets() {
return productBaskets;
}
public void setProductBaskets(List<ProductBasket> productBaskets) {
this.productBaskets =productBaskets;
}
public void setLastPrice(double lastPrice) {
this.lastPrice = lastPrice;
}
@OneToMany(mappedBy="product")
public List<Promotion> getPromotions() {
return promotions;
}
public void setPromotions(List<Promotion> promotions) {
this.promotions = promotions;
}
@OneToMany
public List<Product> getAccessories() {
return accessories;
}
public void setAccessories(List<Product> accessories) {
this.accessories = accessories;
}
/*
@ManyToOne
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
*/
}
Nakon deploy, JBoss kreira posebnu tabelu product_product u kojoj mi dozvoljava unosenje samo jednog istog accessorie (potrebno mi da ta vezna tabela ima ima dva kljuca npr.product_id i accessoies_id ,a ne samo jedan kao u mom slucaju).