Spring Data JDBC – не удалось безопасно определить назначение хранилища для кандидата на репозиторийJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring Data JDBC – не удалось безопасно определить назначение хранилища для кандидата на репозиторий

Сообщение Anonymous »


Я внес несколько изменений в коммит, и вдруг моя программа Spring не может инициализировать объекты и связать их с репозиториями. Когда я запускаю Spring, я получаю это в качестве журнала:

2022-07-10 16:39:17.137 INFO 18040 --- [restartedMain] com.vendify.BackendDbApplication: запуск BackendDbApplication с использованием Java 17.0.2 на DESKTOP-HSDNP64 с PID 18040 (приложение запущено (мой) имя) в каталоге) 2022-07-10 16:39:17.140 INFO 18040 --- [restartedMain] com.vendify.BackendDbApplication: активный профиль не установлен, возврат к профилям по умолчанию: по умолчанию 2022-07-10 16:39:17.186 INFO 18040 --- [restartedMain].e.DevToolsPropertyDefaultsPostProcessor: свойства Devtools по умолчанию активны! Установите для «spring.devtools.add-properties» значение «false», чтобы отключить 2022-07-10 16:39:17.187 INFO 18040 --- [restartedMain].e.DevToolsPropertyDefaultsPostProcessor: Для дополнительного ведения журнала, связанного с Интернетом, рассмотрите возможность установки свойства «logging.level.web» в значение «DEBUG». 2022-07-10 16:39:18.193 INFO 18040 --- [restartedMain].s.d.r.c.RepositoryConfigurationDelegate: обнаружено несколько модулей Spring Data, вход в строгий режим конфигурации репозитория! 2022-07-10 16:39:18.194 INFO 18040 --- [restartedMain].s.d.r.c.RepositoryConfigurationDelegate: загрузка репозиториев JDBC Spring Data в режиме DEFAULT. 2022-07-10 16:39:18.240 INFO 18040 --- [restartedMain].RepositoryConfigurationExtensionSupport: Spring Data JDBC — не удалось безопасно определить назначение хранилища для интерфейса-кандидата репозитория com.vendify.Repositories.Auth0TokensCacheRepository. Если вы хотите, чтобы этот репозиторий был репозиторием JDBC, рассмотрите возможность добавления к вашим объектам одной из этих аннотаций: org.springframework.data.relational.core.mapping.Table. 2022-07-10 16:39:18.242 INFO 18040 --- [restartedMain].RepositoryConfigurationExtensionSupport: Spring Data JDBC — не удалось безопасно определить назначение хранилища для интерфейса-кандидата репозитория com.vendify.Repositories.ItemIndexRepository. Если вы хотите, чтобы этот репозиторий был репозиторием JDBC, рассмотрите возможность добавления к вашим объектам одной из этих аннотаций: org.springframework.data.relational.core.mapping.Table. 2022-07-10 16:39:18.244 INFO 18040 --- [restartedMain].RepositoryConfigurationExtensionSupport: Spring Data JDBC — не удалось безопасно определить назначение хранилища для интерфейса-кандидата репозитория com.vendify.Repositories.ItemsRepository. Если вы хотите, чтобы этот репозиторий был репозиторием JDBC, рассмотрите возможность добавления к вашим объектам одной из этих аннотаций: org.springframework.data.relational.core.mapping.Table. 2022-07-10 16:39:18.246 INFO 18040 --- [restartedMain].RepositoryConfigurationExtensionSupport: Spring Data JDBC — не удалось безопасно определить назначение хранилища для интерфейса-кандидата репозитория com.vendify.Repositories.LoggingRepository. Если вы хотите, чтобы этот репозиторий был репозиторием JDBC, рассмотрите возможность добавления к вашим объектам одной из этих аннотаций: org.springframework.data.relational.core.mapping.Table. 2022-07-10 16:39:18.248 INFO 18040 --- [restartedMain].RepositoryConfigurationExtensionSupport: Spring Data JDBC — не удалось безопасно определить назначение хранилища для интерфейса-кандидата репозитория com.vendify.Repositories.SerialsRepository. Если вы хотите, чтобы этот репозиторий был репозиторием JDBC, рассмотрите возможность добавления к вашим объектам одной из этих аннотаций: org.springframework.data.relational.core.mapping.Table. 2022-07-10 16:39:18.251 INFO 18040 --- [restartedMain].RepositoryConfigurationExtensionSupport: Spring Data JDBC — не удалось безопасно определить назначение хранилища для интерфейса-кандидата репозитория com.vendify.Repositories.TransactionsRepository. Если вы хотите, чтобы этот репозиторий был репозиторием JDBC, рассмотрите возможность добавления к вашим объектам одной из этих аннотаций: org.springframework.data.relational.core.mapping.Table. 2022-07-10 16:39:18.253 INFO 18040 --- [restartedMain].RepositoryConfigurationExtensionSupport: Spring Data JDBC — не удалось безопасно определить назначение хранилища для интерфейса-кандидата репозитория com.vendify.Repositories.ValidUsersRepository. Если вы хотите, чтобы этот репозиторий был репозиторием JDBC, рассмотрите возможность добавления к вашим объектам одной из этих аннотаций: org.springframework.data.relational.core.mapping.Table. 2022-07-10 16:39:18.255 INFO 18040 --- [restartedMain].RepositoryConfigurationExtensionSupport: Spring Data JDBC — не удалось безопасно определить назначение хранилища для интерфейса-кандидата репозитория com.vendify.Repositories.VendorsRepository. Если вы хотите, чтобы этот репозиторий был репозиторием JDBC, рассмотрите возможность добавления к вашим объектам одной из этих аннотаций: org.springframework.data.relational.core.mapping.Table. 2022-07-10 16:39:18.256 INFO 18040 --- [restartedMain].s.d.r.c.RepositoryConfigurationDelegate: завершено сканирование репозитория Spring Data за 58 мс. Найдено 0 интерфейсов репозитория JDBC. 2022-07-10 16:39:18.266 INFO 18040 --- [restartedMain].s.d.r.c.RepositoryConfigurationDelegate: обнаружено несколько модулей Spring Data, вход в строгий режим конфигурации репозитория! 2022-07-10 16:39:18.267 INFO 18040 --- [restartedMain].s.d.r.c.RepositoryConfigurationDelegate: загрузка репозиториев Spring Data JPA в режиме DEFAULT. 2022-07-10 16:39:18.329 INFO 18040 --- [restartedMain].s.d.r.c.RepositoryConfigurationDelegate: завершено сканирование репозитория Spring Data за 51 мс. Найдено 8 интерфейсов репозитория JPA. 2022-07-10 16:39:19.172 INFO 18040 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer: Tomcat инициализирован с портами: 8081 (http) 2022-07-10 16:39:19.184 INFO 18040 --- [restartedMain] o.apache.catalina.core.StandardService: запуск службы [Tomcat] 2022-07-10 16:39:19.184 INFO 18040 --- [restartedMain] org.apache.catalina.core.StandardEngine: Запуск механизма сервлетов: [Apache Tomcat/9.0.52] 2022-07-10 16:39:19.275 INFO 18040 --- [restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/]: Инициализация встроенного Spring WebApplicationContext 2022-07-10 16:39:19.276 INFO 18040 --- [restartedMain] w.s.c.ServletWebServerApplicationContext: Root WebApplicationContext: инициализация завершена за 2089 мс 2022-07-10 16:39:19.754 INFO 18040 --- [restartedMain] ofcinternal.license.VersionPrinter: Flyway Community Edition 7.7.3 от Redgate 2022-07-10 16:39:19.760 ИНФОРМАЦИЯ 18040 --- [restartedMain] com.zaxxer.hikari.HikariDataSource: HikariPool-1 - Начало... 2022-07-10 16:39:20.192 INFO 18040 --- [restartedMain] com.zaxxer.hikari.HikariDataSource: HikariPool-1 — запуск завершен. 2022-07-10 16:39:20.240 INFO 18040 --- [restartedMain] ofci.database.base.DatabaseType: База данных: jdbc:mysql://localhost:3306/vendify (MySQL 8.0) 2022-07-10 16:39:20.276 INFO 18040 --- [restartedMain] of.core.internal.command.DbValidate: успешно проверена 1 миграция (время выполнения 00:00.015с) 2022-07-10 16:39:20.284 INFO 18040 --- [restartedMain] of.core.internal.command.DbMigrate: Текущая версия схемы `vendify`: 1 2022-07-10 16:39:20.285 INFO 18040 --- [restartedMain] of.core.internal.command.DbMigrate: Схема `vendify` обновлена. Никакой миграции не требуется. 2022-07-10 16:39:20.502 INFO 18040 --- [restartedMain] o.hibernate.jpa.internal.util.LogHelper: HHH000204: обработка PersistenceUnitInfo [имя: по умолчанию] 2022-07-10 16:39:20.564 ИНФОРМАЦИЯ 18040 --- [restartedMain] org.hibernate.Version: HHH000412: Базовая версия Hibernate ORM 5.4.32.Final 2022-07-10 16:39:20.705 INFO 18040 --- [restartedMain] o.hibernate.annotations.common.Version: HCANN000001: Аннотации Hibernate Commons {5.1.2.Final} 2022-07-10 16:39:20.866 ИНФОРМАЦИЯ 18040 --- [restartedMain] org.hibernate.dialect.Dialect: HHH000400: Использование диалекта: org.hibernate.dialect.MySQL8Dialect 2022-07-10 16:39:21.555 INFO 18040 --- [restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator: HHH000490: Использование реализации JtaPlatform: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 2022-07-10 16:39:21.563 INFO 18040 --- [restartedMain] j.LocalContainerEntityManagerFactoryBean: инициализированный JPA EntityManagerFactory для единицы персистентности «по умолчанию» 2022-07-10 16:39:22.307 WARN 18040 --- [restartedMain] JpaBaseConfiguration$JpaWebConfiguration: Spring.jpa.open-in-view включен по умолчанию. Следовательно, запросы к базе данных могут выполняться во время рендеринга представления. Явно настройте Spring.jpa.open-in-view, чтобы отключить это предупреждение. 2022-07-10 16:39:22.779 INFO 18040 --- [restartedMain] o.s.s.web.DefaultSecurityFilterChain: защитит любой запрос с помощью [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@6c38469b, org.springframework .security.web.context.SecurityContextPersistenceFilter@52d983cb, org.springframework.security.web.header.HeaderWriterFilter@67a31d2b, org.springframework.security.web.authentication.logout.LogoutFilter@2c8dea82, org.springframework.security.web.authentication .www.BasicAuthenticationFilter@631bab6, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1f96917a, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@64458fc6, org.springframework.security.web.authentication.AnonymousAuthenti cationFilter@46d290b3, орг. .springframework.security.web.session.SessionManagementFilter@1312d3d0, org.springframework.security.web.access.ExceptionTranslationFilter@37e85798, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2cc95e93] 2022-07-10 16:39:23.986 INFO 18040 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer: сервер LiveReload работает на порту 35729 2022-07-10 16:39:23.995 INFO 18040 --- [restartedMain] o.s.b.a.e.web.EndpointLinksResolver: предоставление доступа к 14 конечным точкам под базовым путем '/****{скрыто в целях безопасности}' 2022-07-10 16:39:24.057 INFO 18040 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer: Tomcat запущен на портах: 8081 (http) с контекстным путем '' 2022-07-10 16:39:24.073 INFO 18040 --- [restartedMain] com.vendify.BackendDbApplication: BackendDbApplication запущен за 7,398 секунд (JVM работает на 7,938) В основном меня беспокоят следующие ошибки в журнале:

2022-07-10 16:39:18.240 INFO 18040 --- [restartedMain].RepositoryConfigurationExtensionSupport: Spring Data JDBC — не удалось безопасно определить назначение хранилища для интерфейса-кандидата репозитория com.vendify.Repositories.Auth0TokensCacheRepository. Если вы хотите, чтобы этот репозиторий был репозиторием JDBC, рассмотрите возможность добавления к вашим объектам одной из этих аннотаций: org.springframework.data.relational.core.mapping.Table. это пример того, как я кодирую свои классы сущностей (все они такие, и я не трогал их уже довольно давно. Кажется, они работали раньше...)

пакет com.vendify.Entities; импортировать java.util.Date; импортировать javax.persistence.Column; импортировать javax.persistence.Entity; импортировать javax.persistence.GeneratedValue; импортировать javax.persistence.GenerationType; импортировать javax.persistence.Id; импортировать javax.persistence.Table; импортировать org.springframework.lang.NonNull; импортировать ломбок.Getter; импортировать ломбок.Setter; @Сущность @Table(name = "Журналирование") @Getter @Сеттер общественный класс LoggingEntity { //конкретный код удален в целях безопасности } с подобным классом репозитория:

пакет com.vendify.Repositories; импортировать java.util.Date; импортировать java.util.List; импортировать org.springframework.data.repository.CrudRepository; импортировать org.springframework.data.rest.core.annotation.RepositoryRestResource; импортировать com.vendify.Entities.Auth0TokensCacheEntity; @RepositoryRestResource(экспортировано = ложь) общедоступный интерфейс Auth0TokensCacheRepository расширяет CrudRepository { } В качестве доказательства: структурные таблицы моей базы данных MySQL выглядят примерно так:
Изображение


Похоже, Spring может подключиться к базе данных, и долгое время с ним не было проблем... Я добавил несколько пакетов, и он напутал с некоторыми другими вещами, и, похоже, именно тогда он сломался, Итак, для некоторого контекста, вот как обычно устроена моя программа:


Изображение


Будем очень благодарны за помощь! Огромное вам спасибо и удачи вам, коллеги-разработчики проекта!

Обновление: я попробовал заменить CRUDRepository на JPARepository и другие аннотации, подобные предложению Дханы (спасибо :)), и Spring нашел все эти репозитории. однако все мои конечные точки API теперь не дают ответа, даже конечные точки исполнительного механизма. Также при добавлении @ComponentScan(basePackageClasses = {мои классы контроллера}) я получаю ошибку приложения, что Spring не может найти классы обслуживания. Обратите внимание: на данный момент, когда я вызываю конечную точку, функция по-прежнему работает правильно (она может правильно распечатать результат system.out.print, но по какой-то причине не может правильно вернуть его на веб-сервер для отображения.

Описание: Поле auth0TokensCacheService в com.vendify.Controllers.{ControllerClass} требовало bean-компонента типа com.vendify.Services.{ControllerClass}, который не удалось найти. Точка инъекции имеет следующие аннотации: - @org.springframework.beans.factory.annotation.Autowired(обязательно=true) Действие: Рассмотрите возможность определения bean-компонента типа com.vendify.Services.{ControllerClass} в вашей конфигурации. Мой класс обслуживания выглядит следующим образом:

@Service общественный класс HiddenService { @Autowired HiddenRepository HiddenRepository; // методы здесь } И мой контроллер выглядит так:

@RestController общественный класс HiddenController { @GetMapping("/endpointURL") // метод здесь } Спасибо!
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»