我的数据库August 10, 2017
和Compte
中有两个表。在Respnsable
表中,我有一个外键列" Compte
"。我想要做的是在jsp页面的compte表中显示Responsable的名字。
responsable
我有这个错误:
javax.el.ELException:在类型上读取[name]时出错 [co.ma.entity.Responsable $$ EnhancerByCGLIB $$ 5949c96e]
Class Compte:
<c:forEach items="${lescompte}" var="compt">
<tr>
<td>${compt.idCompte}</td>
<td>${compt.responsable.name}</td>
</tr>
</c:forEach>
课程负责人:
package co.ma.entity;
// Generated 10 août 2017 21:09:03 by Hibernate Tools 5.2.3.Final
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
/**
* Compte generated by hbm2java
*/
@Entity
@Table(name = "compte", catalog = "topic")
public class Compte implements java.io.Serializable {
private Integer idCompte;
private Responsable responsable;
private Set<Contact> contacts = new HashSet<Contact>(0);
public Compte() {
}
public Compte(Responsable responsable) {
this.responsable = responsable;
}
public Compte(Responsable responsable, Set<Contact> contacts) {
this.responsable = responsable;
this.contacts = contacts;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "Id_Compte", unique = true, nullable = false)
public Integer getIdCompte() {
return this.idCompte;
}
public void setIdCompte(Integer idCompte) {
this.idCompte = idCompte;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "Id_Respo", nullable = false)
public Responsable getResponsable() {
return this.responsable;
}
public void setResponsable(Responsable responsable) {
this.responsable = responsable;
}
}
答案 0 :(得分:0)
错误的原因是您尝试从不存在的外键name
访问responsable
属性。记住外键只是传递给“值”,而不是“表”本身。
如果外键responsable
已经是您要显示的名称,则只需删除.name
。
否则,您可能需要另一个forEach
来匹配responsable
表中的compte
列到Respnsable
表。它可能看起来像这样:
<c:forEach items="${lescompte}" var="compt">
<tr>
<td>${compt.idCompte}</td>
<c:forEach items="${nameOfResponsableTable}" var="resp">
<c:if test="${compt.responsable == resp.valueToCompare}">
<td>${resp.name}</td>
</c:if>
</c:forEach>
</tr>
</c:forEach>
我希望我能很好地理解你的问题,希望这会有所帮助! :)