2013-12-13 2 views
0

Мой класс Категория должен иметь несколько продуктов, мне нужно, чтобы показать продукты, когда вы нажимаете на категории в СПЯ ... Я пробовал так: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

Смежные вопросы