EL1007E: 属性 或字段 'classes' 无法在 null 上找到 - 尝试在 html 中显示 类 的名称时

EL1007E: Property or field 'classes' cannot be found on null - while trying to display name of classes in html

我正在尝试从 Spring Data JPA 中的多个 table 获取数据。

User.java

@Entity
@Table(name = "user")
public class User{

    @Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    private Long id;


    private String username;

    private String password;

   //Getters and setters generated

    @ManyToMany(fetch = FetchType.LAZY, cascade = { CascadeType.MERGE, CascadeType.PERSIST })
    private List<Classes> classes;

Classes.java

@Entity
public class Classes {

    @Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    private Long id;

    private String name;

    @Lob
    private String description;

    @ManyToMany(mappedBy = "classes", fetch = FetchType.EAGER, cascade = { CascadeType.MERGE, CascadeType.PERSIST })
    private List<User> user;

这些实体生成 table 命名为 'user_classes' 和字段如下 classes_id 和 user_id

我正在尝试显示属于该特定用户的 classes 的名称。 由于我的模型设计如上所示,我正在尝试这样做

<tr th:each="classes : ${user.classes}">
    <td th:text="${classes.name}"></td>
</tr>

我的 table 在数据库中看起来像这样

Database table

所以 class 和用户确实存在。

但是我遇到了这个错误

EL1007E: Property or field 'classes' cannot be found on null

我不确定我做错了什么?

拼写错误。我已将用户对象 Thymeleaf 视图传递为

<tbody th:each="users : ${users}">

我试图达到它

<tr th:each="classes : ${user.classes}">
    <td th:text="${classes.name}"></td>
</tr> 

${user.classes} 部分无效。当我将用户对象写为 users 或像这样 ${users.classes} 时一切正常!