Spring Boot JPARepository не отображает идентификатор при использовании метода findAll () - PullRequest
0 голосов
/ 06 мая 2019

Я создаю приложение Spring Boot, но мой findAll (реализованный с помощью JPARepository) возвращает все атрибуты, кроме идентификатора, и мне нужен идентификатор для представления, которое я пытаюсь создать.Есть ли способ изменить это?В настоящее время у меня есть

/ model / rol.java

@Entity
@Table(name = "roles")
public class rol {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

@Column(name = "rol", nullable = false)
private String rol;

@OneToMany(mappedBy = "rol", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<Administrador> administradores;

public rol() {

}

public rol(String rol) {
    this.rol = rol;
}
/* Getters and Setters */

/ repository / rolrepository.java

@Repository
public interface rolrepository extends JpaRepository<rol, Long>{
}

/ controller / rolcontroller.java

@Controller
public class rolcontroller {

@Autowired
private rolrepository rolRepository;

@GetMapping("/roles")
public String showAll(Model model) {
    model.addAttribute("roles", rolRepository.findAll());
    return "roles";
}

/ templates / role.html

<table class="table table-striped">
    <thead class="thead-dark" >
        <tr>
            <th scope="col"> ID </th>
            <th scope="col"> Rol </th>
        </tr>
    </thead>
    <tbody>
        <tr th:if="${roles.empty}">
            <td colspan="2"> No hay roles registrados </td>
            </tr>
            <tr th:each="rol : ${roles}">
                <td><span th:text="${rol.id}"> Rol </span></td>
                <td><span th:text="${rol.rol}"> Rol </span></td>
            </tr>
    </tbody>
</table>

Однако я получаю сообщение об ошибке Exception evaluating SpringEL expression: "rol.id"

После некоторых исследований я обнаружил, что, очевидно, JPARepository не содержит идентификатормодель в методе findAll().

Есть ли способ изменить findAll() или любой другой файл, чтобы иметь возможность использовать идентификатор в моей таблице HTML?

Заранее спасибо

Ожидаемый вывод - это значение rol.id в моей таблице, однако фактическим результатом является исключение, вычисляющее выражение SpringEL: "rol.id"

Ответы [ 2 ]

2 голосов
/ 06 мая 2019
@Repository
public interface rolrepository extends JpaRepository<rol, Long>{
}

Аргумент JpaRepository

JpaRepository<rol, Long>

Указывает, что идентификатор имеет тип Long, но вы используете int id в своем коде rol java

Попробуйте использовать Long id в rol.java

0 голосов
/ 06 мая 2019

Прежде всего, rol не является правильным именем класса. Вы должны начать практиковать соглашения об именах.

Во-вторых, когда вы используете JPARespository / CrudRepository, убедитесь, что тип данных столбца id, который вы берете вваш класс POJO и тот, что в репозитории, совпадают.См. Это.

@Repository
public interface rolrepository extends JpaRepository<Rol, Long>{
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...