Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring框架关系映射_Java_Mysql_Spring_Mapping - Fatal编程技术网

Java Spring框架关系映射

Java Spring框架关系映射,java,mysql,spring,mapping,Java,Mysql,Spring,Mapping,我的类Categorie需要有多个产品,我需要在您单击jsp中的一个类别时显示这些产品。。。我这样试过: @Entity public class Categorie { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int categorieId; private String categorieName; @OneToMany() @JoinColumn(name

我的类Categorie需要有多个产品,我需要在您单击jsp中的一个类别时显示这些产品。。。我这样试过:

@Entity
public class Categorie {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int categorieId;
    private String categorieName;
    @OneToMany()
    @JoinColumn(name = "CategorieNr")
    private Set<Product> products;
这是我用来获取产品类别的存储库:

@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();
    }
@存储库
公共类CategoryRepository实现了ICategoryRepository
{
@持久上下文
私人实体管理者;
公共类别报告(){
}
公共类别存储库(实体管理器em)
{
this.em=em;
}
公共无效设置EntityManager(EntityManager e)
{
这是em=e;
}  
@事务(只读=真)
@凌驾
公共列表findAll()
{
CriteriaQuery cq=em.getCriteriaBuilder().createQuery();
cq.选择(cq.from(Categorie.class));
返回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>
Productenlijst

您的类
产品
需要声明为
@实体
(您不能嵌入一对多关系,特别是因为您的
产品
包含它自己的
ID

没有必要在标题中添加主标记。你说的对,所以我试了一下,就像你说的,我已经改变了上面的问题,你能帮我看看吗?我的产品仍然是空的……我还没有编写任何单元测试,但是如果你愿意,我可以添加控制器和存储库代码……我添加了代码,如果你愿意,我甚至想发邮件你知道我的项目,反正是给学校的。你的数据源中有测试数据吗?是的,我把它们和产品表中的外键链接了起来
  <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>