2013-12-13 100 views
0

我班Categorie需要有多个产品,我需要显示的产品,当你在JSP点击类别...我想这样的:Spring框架关系映射

@Entity 
public class Categorie { 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private int categorieId; 
    private String categorieName; 
    @OneToMany() 
    @JoinColumn(name = "CategorieNr") 
    private Set<Product> products; 

我的产品类:

@Entity 
@Table(name = "CentricProduct") 
public class Product implements Serializable{ 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private int productId; 
    private int calories, productRow; 
    private String description; 
    private double price; 

    @Override 
    public boolean equals(Object object) { 
    if (!(object instanceof Product)) { 
    return false; 
    } 

    Product other = (Product) object; 
    return description.equals(other.description); 
    } 

    @Override 
    public int hashCode() { 
    return description.hashCode(); 
} 

这是我用自己的产品来获得的categorys库:

@Repository 
public class CategoryRepository implements ICategoryRepository 
{ 

    @PersistenceContext 
    private EntityManager em; 

    public CategoryRepository() { 
    } 

    public CategoryRepository(EntityManager em) 
    { 
     this.em = em; 
    } 

    public void setEntityManager(EntityManager e) 
    { 
     this.em = e; 
    } 

    @Transactional(readOnly = true) 
    @Override 
    public List<Categorie> findAll() 
    { 
     CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); 
     cq.select(cq.from(Categorie.class));   
     return em.createQuery(cq).getResultList(); 
    } 

在我的jsp:

<h1 class="listtitle">Productenlijst</h1> 
      <div id="leftlist" class="list" >  
       <c:forEach items="${products}" var="item" >         
       <form:form method="POST" action="shoppinglist.htm" modelAttribute="products">    
       <input type="submit" value= "${item.categorieName}" class="productlistbtn" alt="Submit" input path="${item}" > 
       </form:form> 
        </c:forEach>    
      </div> 
+0

没有必要在标题中添加主标签。 –

回答

0

Product需要被声明为@Entity。 (你不能嵌入一对多的关系,特别是因为你的Product包含它自己的ID

+0

对,所以我试着像你说的,我已经改变了我的问题,你会好好看看吗?我的产品仍然是空... – PrisonMike

+0

你能添加你的测试代码吗? –

+0

我还没有写任何单元测试,但如果你想我可以添加控制器和存储库代码... – PrisonMike