【问题标题】:hibernate selects on relation one to manyhibernate 在关系上选择一对多
【发布时间】:2018-07-16 16:12:58
【问题描述】:

我正在使用 eclispe sts 和 maven 开发一个 jee 项目

我与文章的类别父级有关系, 添加一些具有正确父母 ID 的文章(在数据库中检查)后,当我选择所有文章及其类别的列表时,我获得对实体的引用,如下 com.stock.mvc.entities.Category@b01648

有什么想法吗?

这是实体文章中的关系类别文章

  @ManyToOne
  @JoinColumn(name = "idCategory")  
  private Category category;

以及实体类别中的关系文章类别

  @OneToMany(mappedBy ="category")
  private List<Article> articles;

这是视图 article.jsp 中的文章表

<td>${article.getCodeArticle() }</td>                
<td>${article.getDesignation() }</td>                
<td>${article.getPrixUnitaireHt() }</td>                 
<td>${article.getTauxTva() }</td>                
<td>${article.getPrixUnitaireTTC() }</td>                
<td>${article.getCategory() }</td>

最后一行 (${article.getCategory() }) 显示以下消息,而不是类别 ID com.stock.mvc.entities.Category@b01648

【问题讨论】:

  • 知道什么吗?问题/问题是什么?
  • 如何使用jstl从实体Category中选择类别名称
  • ${category.name}?你知道你没有发布任何一行代码,对吧?如果您不发布,我们将看不到您的代码。如果你不说,我们不知道你想做什么。
  • 发布您需要在问题中发布的所有内容。不在 cmets 中。
  • 为什么会显示分类ID?您要求显示类别对象,而不是类别 ID。如果要显示类别 ID,请执行以下操作:${article.category.id}。

标签: java hibernate jakarta-ee entity


【解决方案1】:

我不确定你的实体,因为你没有在这里发帖。

但是在这里可见的一件事是您正在使用 getter 访问值,这是错误的方式。相反,您可以通过如下所示的字段名称访问值。

<td>${article.category}</td>

注意:确保如果一个对象是 Collection,那么你需要迭代它。

您将获得com.stock.mvc.entities.Category@b01648,因为这是类别对象,因此您可以使用. dot 运算符访问其字段,如下所示。

 <td>${category.name}</td>

【讨论】:

  • 字段是私有的,这就是我使用 getter 和 setter 访问它们的原因
  • 不需要那样使用...spring 表达式语言为您做到了...像我在回答中建议的那样使用..它会起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 2012-09-11
  • 1970-01-01
  • 2015-02-05
  • 1970-01-01
  • 2013-03-08
相关资源
最近更新 更多