findById () приводит к проблеме / ошибке (идентификатор свойства не найден) - PullRequest
1 голос
/ 10 июля 2019

У меня есть три сущности. (Я использую ххх в качестве заполнителя для этого примера)

Я настроил все свои @Entities с

@Entity
@Table(name = "xxx")
public class xxx {

@Id
@Column(name = "xxx_id")
int xxx_id;

Однако я могу сделать:

findById(int ...) только для ОДНОЙ из сущностей в их соответствующем Репозитории. Когда я пытаюсь сделать это для двух других сущностей, я получаю эту проблему:

"Неверный производный запрос! Идентификатор свойства не найден для типа xxx!"

Я могу запустить его и получить правильные результаты. Но почему я получаю эту ошибку для двух объектов, а не для другой?

Я настроил сущности и их хранилища точно так же. ЕДИНСТВЕННОЕ отличие состоит в том, что в сущности, чей репозиторий не возвращает никаких ошибок, я объединяю эту сущность с другой сущностью, чей репозиторий дает сбой, но я использовал «mappedBy» в разделе @JoinColumns.

Может ли это быть как-то связано с тем, почему у этого нет проблем?

1 Ответ

3 голосов
/ 10 июля 2019

Как findBy ... работает?

Entity:
private int clientid;
private String firstname;
private String lastname;

Запрос:

findBy<Name_as_per_entity>
findByClientid(int clientid);
findByFirstnameAndLastname(String firstname, String lastname)

Решение

Поскольку мы рассматриваем символ подчеркивания как зарезервированный символ, мы настоятельно рекомендуем следовать стандартным соглашениям об именах Java (то есть не использовать подчеркивания в именах свойств, а вместо этого использовать регистр верблюдов).

Doc

Подчеркивание _ является зарезервированным символом в запросе Spring Data для потенциального разрешения описания пути свойства вручную.

Придерживайтесь соглашений о присвоении имен Java, используя camel-case для имен переменных-членов, и все будет работать, как и ожидалось.

См. Также

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