Пользовательские объекты не загружаются в Spring Cloud Dataflow Server - PullRequest
0 голосов
/ 19 февраля 2019

Как только я @ EnableDataFlowServer моего приложения SpringBoot, мои собственные пользовательские объекты не загружаются.(Я получаю исключение «тип не управляемый», которое возникает, когда JPA не находит ваши сущности).

Эти сущности находятся в другом импортируемом мной модуле Spring, например

@Import({MyDomainsModule.class})

Я использую 2.0.0.m2 Spring Cloud DataFlow.

Некоторая отладка, которую я сделал:

Если я добавлю это в мой основной класс приложения Spring Boot:

@EntityScan({
"com.company.mydomain.entities"
})

Тогда мои сущности начнут загружаться как обычно, нотогда Spring DataFlow ломается.Например, всякий раз, когда я пытаюсь загрузить пользовательский интерфейс, я получаю:

 |ne.jdbc.spi.SqlExceptionHelper|  Table 'dataflow.appregistration' doesn't exist 

Это заставляет меня задуматься, просто добавив EntityScan, я нарушил некоторую стратегию именования, поскольку фактическое имя таблицы имееткурс app_registration

Я думаю, что это, в основном, «как сделать несколько размещений кода на основе JPA в одном проекте», а не вопрос Spring Cloud DataFlow.Но знание исправления может потребовать лучшего понимания того, как работает SCDF.Я проверил проект и прочитал как Spring Boot, так и сам SCDF.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 19 февраля 2019

У меня была плохая стратегия, исходящая из одного из моих свойств, переопределив то, что SCDF добавил это в мои application.properties.

Чтобы быть точным, я устанавливаю это в своих свойствах:

spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
spring.jpa.hibernate.naming.implicit-strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy

И тогда мое приложение SpringBoot выглядит как

@SpringBootApplication(exclude = LocalDataFlowServerAutoConfiguration.class)
@Import({MyDomainModule.class})
@EnableDataFlowServer

// EnableDataFlowServer has an EntityScan, which causes ours to not be picked up!
// Look in DataFlowControllerAutoConfiguration for more information
@EntityScan({
"com.company.mydomain.entities"
})
...