URL данных весеннего отдыха во множественном числе

У меня есть класс домена с именем StoreType.java, который представлен в нижеприведенном репозитории Spring.

public interface StoreTypeRepository extends PagingAndSortingRepository<StoreType, Short> {

}

Когда я получаю доступ к этому, используя URL-адрес http://localhost:8080/my-persistence/jpa/storetypes, он возвращает 404.

если я изменю свой класс домена на Storetype (без верблюжьего регистра), он будет работать нормально и вернет 200 OK.

У меня есть еще несколько репозиториев, которые используют классы одного домена мира, такие как Store.java , Country.java, и они работают нормально, и по умолчанию они отображаются как множественное число от имени класса домена.

Я знаю, что Spring выставляет URL-адрес как множественное число классов домена, но не уверен, почему он не раскрывает его. Я могу переопределить это, используя @RepositoryRestResource(path="/storetypes"), но я хочу знать, что такое URL-адрес отдыха по умолчанию, если имя класса домена в верблюжьем регистре.


person Vijay Kumar Rajput    schedule 25.10.2014    source источник


Ответы (1)


Похоже, вы ответили на вопрос о своей проблеме, указав аннотацию @RepositoryRestResource( path="/storetypes" ) как документация гласит.

Spring Data REST предоставляет ресурс коллекции, названный в честь написанной без заглавной буквы во множественном числе версии доменного класса, который обрабатывает экспортированный репозиторий. И имя ресурса, и путь можно настроить с помощью @RepositoryRestResource в интерфейсе репозитория.

В этом случае ваше соглашение об именах кажется правильным с использованием StoreTypeRepository, однако одна вещь меня смущает в вашем определении репозитория... Я не уверен, почему вы установили для параметра типа значение PagingAndSortingRepository<StoreType, Short>, но я совершенно уверен, что это неверно, поскольку второй параметр типа должен быть типа Long.

person Edward J Beckett    schedule 29.10.2014
comment
Да, вы правы, так как я уже добавил path=/storetypes, поэтому моя проблема решена, но мой вопрос заключался в том, каким должен быть путь по умолчанию, сгенерированный spring, если у меня есть репозиторий, такой как StoreType, с верблюжьим случаем. Если я этого не сделаю используйте верблюжий чехол, тогда он работает, как вы сказали. - person Vijay Kumar Rajput; 30.10.2014
comment
Я определил короткий как тип, потому что знаю, что мои магазины не могут вырасти больше, чем 32767, что является mysql smallint и представлено в java как короткое. SMALLINT в mysql 2-битный, а если я выберу BINGINT, то его 8-битный. - person Vijay Kumar Rajput; 30.10.2014
comment
Ну, я думаю, это нормально. Я все еще довольно озадачен, почему ваш класс не работает с именем класса в верблюжьем регистре. Возможно, вы обнаружили ошибку. Вы можете попробовать отправить сообщение об ошибке в трекер для весенних данных. - person Edward J Beckett; 30.10.2014
comment
Спасибо Эдди. У меня есть открытая ошибка под весенним отдыхом данных. jira.spring.io/browse/DATAREST-402 - person Vijay Kumar Rajput; 31.10.2014
comment
storeTypes является заглавной, множественной версией StoreType :) - person Oliver Drotbohm; 31.10.2014