Java Spring框架关系映射
我的类Categorie需要有多个产品,我需要在您单击jsp中的一个类别时显示这些产品。。。我这样试过: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
@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>