休眠。在类型上找不到属性

时间:2014-01-23 12:44:03

标签: java hibernate jsp

我有实体类出版物。它与实体类Teacher连接为ManyToMany。

这是出版物课程的一部分

// create connectivity with table Teacher
public Set<Teacher> teachers;

@ManyToMany
@JoinTable(name = "Bridge2",
           joinColumns = @JoinColumn(name = "PublicationId"),
           inverseJoinColumns = @JoinColumn(name = "TeacherId"))
public Set<Teacher> getTeacher() {
    return teachers;
}

public void setTeacher(Set<Teacher> teachers) {
    this.teachers = teachers;
}

我从数据库中选择发布并将其传递给JSP页面。在JSP页面上,我尝试查看所有教师,但总是得到异常在org.irs.entities.Publication类型上找不到属性'教师'。

这是JSP文件的一部分

<td> <!-- view all teachers -->
    <c:forEach var="t" items="${publication.teachers}">
        ${t.teacherFullName}<br/>
    </c:forEach>
</td>

如果有人知道这个问题的原因,我会很乐意帮忙。

2 个答案:

答案 0 :(得分:2)

尝试将您的访问者方法重命名为getTeacherssetTeachers(复数而不是单数)。

Hibernate看到getTeacher,因此属性名称为teacher。您正试图访问该属性teachers

答案 1 :(得分:1)

这似乎是因为您的gettersetterteacher而不是teachers。 Hibernate关注settergetters而不是字段。将它们更改为setTeacher * s *和getTeacher * s *可能会解决问题。