Как обнаружить повторяющееся значение, сохраненное в сообщении метода, с помощью java spring boot

org.springframework.data.mapping.PropertyReferenceException: Роль свойства не найдена для роли типа!

Репозиторий Ролей

import com.synesisit.commonmodule.acl.model.Role;
import org.springframework.data.jpa.repository.JpaRepository;

public interface RoleRepository extends JpaRepository<Role, Integer> {
    Role findByRole(String name);
}

РольСервис

@Service
public class RoleService {

    private RoleRepository roleRepository;

    public Role findByRole(String name){
    return roleRepository.findByRole(name);
    }
}

РольКонтроллер

    @RestController
    public class RoleController {
        @Autowired
        private RoleService roleService;
    
        @PostMapping("/role")
        public ResponseEntity<ApiResponse> createRole(@RequestBody @Valid Role role) {
            Role existingRole = roleService.findByRole(role.getName());
            if (existingRole != null) {
                return new ResponseEntity(new ErrorResponse("Role Already Exists ! Please try again..", null),
                        HttpStatus.BAD_REQUEST);
            }
            Role createdRole = roleService.save(role);
            return ResponseEntity.ok(new ApiResponse(true, "Role Saved Successfully", createdRole));
        }

}
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
1 091
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Метод в вашем репозитории должен быть findByName вместо findByRole, потому что свойство Role равно name:

public interface RoleRepository extends JpaRepository<Role, Integer> {
    Role findByName(String name);
}

Spring Data автоматически генерирует запросы из вашего репозитория на основе имени метода. Итак, findByRole означает, что Spring хочет сделать запрос к свойству role. Поскольку его не существует (потому что его имя name), у вас есть ошибка:

Роль свойства для типа Роль не найдена!

Другие вопросы по теме