Метод репозитория Spring Data JPA с именем свойства, содержащим специальное слово - PullRequest
0 голосов
/ 07 мая 2018

Например, у меня есть объект со следующим атрибутом:

@Entity
public class MyObj {
    public String nameOrId;
}

Затем я приступаю к созданию хранилища

public interface MyObjRepository extends JpaRepository<MyObj, String> {
    MyObj findByNameOrId(String nameOrId);
}

Это терпит неудачу, потому что кажется, что Spring маркирует имя метода как findBy Name Or Id, вместо findBy nameOrId.

Получившаяся ошибка - свойство «name» не найдено (или похожее).

Есть ли способ избежать специальных слов ("или", "и" и т. Д.) В синтаксисе метода? Переименование столбца, чтобы не включать эти слова, не допускается.

1 Ответ

0 голосов
/ 06 июня 2018

Обходной путь - переименовать поле Java, чтобы избежать специальных слов, сохраняя имя столбца с помощью аннотации @Column.

@Column(name = "nameOrId")
public String nameId;

Метод JPA соответствующим образом переименован.

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