Thymeleaf не работает с ломбком для каждого - PullRequest
0 голосов
/ 09 ноября 2018

У меня проблема с Thymeleaf "forEach" и проектом Lombok в весеннем загрузочном проекте. Если я буду генерировать геттеры и сеттеры, то все будет работать правильно. В случае, когда я использую аннотации lombok, я получаю это исключение:

EL1008E: Свойство или поле 'firstName' не может быть найдено в объекте типа 'pl.codol.hibernate.model.CustomerEntity' - может быть, не является общедоступным или недействительным?

У кого-нибудь есть идеи, что может быть не так? Я читал другие темы, но они не помогли мне решить мою проблему.

Мой класс POJO:

@Data // I also used @Getter and @Setter, doesn't work
@NoArgsConstructor
@Entity
@Table(name = "CUSTOMER")
public class CustomerEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "CUSTOMER_ID")
    private Long id;

    @Column(name = "FIRST_NAME")
    private String firstName;

    @Column(name = "LAST_NAME")
    private String lastName;

    @Column(name = "EMAIL")
    private String email;

    @Override
    public String toString() {
        return "CustomerEntity{" +
                "id=" + id +
                ", firstName='" + firstName + '\'' +
                ", lastName='" + lastName + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

Контроллер:

@Controller
@RequestMapping("/customer")
public class CustomerController {

    private CustomerService customerService;

    @Autowired
    public CustomerController(CustomerService customerService) {
        this.customerService = customerService;
    }

    @RequestMapping("/list")
    public String listCustomers(Model model) {
        List<CustomerEntity> allCustomers = customerService.findAllCustomers();
        model.addAttribute("customers", allCustomers);
        return "list-customers";
    }
}

Часть HTML-файла, вызывающая проблему:

<th:block th:each="customer : ${customers}">
<tr>
<td th:text="${customer.firstName}">...</td>
<td th:text="${customer.lastName}">...</td>
<td th:text="${customer.email}">...</td>
</tr>
</th:block> 

1 Ответ

0 голосов
/ 09 ноября 2018

Я уже нашел проблему.

Проблема была в отсутствии флажка для включения обработки аннотаций в Intellij.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...