[解決済み] Spring boot - マネージドタイプではありません。
2022-01-30 07:48:16
質問
Spring boot+JPAを使用していますが、サービス開始時に問題が発生します。
Caused by: java.lang.IllegalArgumentException: Not an managed type: class com.nervytech.dialer.domain.PhoneSettings
at org.hibernate.jpa.internal.metamodel.MetamodelImpl.managedType(MetamodelImpl.java:219)
at org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.<init>(JpaMetamodelEntityInformation.java:68)
at org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getMetadata(JpaEntityInformationSupport.java:65)
at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:145)
at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:89)
at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:69)
at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:177)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:239)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:225)
at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:92)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1625)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1562)
以下は、Application.javaファイルです。
@Configuration
@ComponentScan
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class })
@SpringBootApplication
public class DialerApplication {
public static void main(String[] args) {
SpringApplication.run(DialerApplication.class, args);
}
}
コネクションプーリングにUCpを使用しており、DataSourceの構成は以下の通りです。
@Configuration
@ComponentScan
@EnableTransactionManagement
@EnableAutoConfiguration
@EnableJpaRepositories(entityManagerFactoryRef = "dialerEntityManagerFactory", transactionManagerRef = "dialerTransactionManager", basePackages = { "com.nervy.dialer.spring.jpa.repository" })
public class ApplicationDataSource {
/** The Constant LOGGER. */
private static final Logger LOGGER = LoggerFactory
.getLogger(ApplicationDataSource.class);
/** The Constant TEST_SQL. */
private static final String TEST_SQL = "select 1 from dual";
/** The pooled data source. */
private PoolDataSource pooledDataSource;
UserDetailsServiceの実装。
@Service("userDetailsService")
@SessionAttributes("user")
public class UserDetailsServiceImpl implements UserDetailsService {
@Autowired
private UserService userService;
サービス層の実装。
@Service
public class PhoneSettingsServiceImpl implements PhoneSettingsService {
}
リポジトリクラスです。
@Repository
public interface PhoneSettingsRepository extends JpaRepository<PhoneSettings, Long> {
}
エンティティクラスです。
@Entity
@Table(name = "phone_settings", catalog = "dialer")
public class PhoneSettings implements java.io.Serializable {
WebSecurityConfig クラスです。
@Configuration
@EnableWebMvcSecurity
@ComponentScan
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsServiceImpl userDetailsService;
/**
* Instantiates a new web security config.
*/
public WebSecurityConfig() {
super();
}
/**
* {@inheritDoc}
* @see org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter#configure(org.springframework.security.config.annotation.web.builders.HttpSecurity)
*/
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/login", "/logoffUser", "/sessionExpired", "/error", "/unauth", "/redirect", "*support*").permitAll()
.anyRequest().authenticated().and().rememberMe().and().httpBasic()
.and()
.csrf()
.disable().logout().deleteCookies("JSESSIONID").logoutSuccessUrl("/logoff").invalidateHttpSession(true);
}
@Autowired
public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(new BCryptPasswordEncoder());
}
}
パッケージは以下の通りです。
-
Application
クラスは - にあります。com.nervy.dialer
-
Datasource
クラスは - にあります。com.nervy.dialer.common
-
エンティティクラスは - にあります。
com.nervy.dialer.domain
-
サービスクラスは - にあります。
com.nervy.dialer.domain.service.impl
-
コントローラは - にあります。
com.nervy.dialer.spring.controller
-
リポジトリクラスは - にあります。
com.nervy.dialer.spring.jpa.repository
-
WebSecurityConfig
は-にあります。com.nervy.dialer.spring.security
ありがとうございます。
解決方法は?
を置き換えることができると思います。
@ComponentScan
で
@ComponentScan("com.nervy.dialer.domain")
が動作します。
編集する。
を追加しました。 サンプルアプリケーション を使用して、BoneCP でプールされたデータソース接続を設定する方法を説明します。
このアプリケーションは、あなたのアプリケーションと同じ構造になっています。設定の問題を解決するのに役立つと思います。
関連
-
[解決済み】Spring Data Maven Buildsの「プラグインの実行はライフサイクル構成でカバーされていません」を解決する方法
-
[解決済み】DispatcherServletの名前[duplicate]でURI...を持つHTTPリクエストのマッピングが見つからない。]
-
[解決済み] Spring Data JPAにおけるCrudRepositoryとJpaRepositoryのインターフェースの違いは何ですか?
-
SpringBoot の例外です。クラスパスリソースに定義された名前 'entityManagerFactory'を持つビーンの作成エラー
-
クラスパス上に Spring WebApplicationInitializer のタイプが検出されない Loading configuration file not found or spring main configuration not found.
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
-
[解決済み] Serviceアノテーションはどこにつけるべきですか?インターフェースか実装か?
-
[解決済み] Spring bootアプリケーションでfield:RestTemplateを自動配線できない。
-
[解決済み] Spring Resttemplateの例外処理
-
[解決済み] Spring Frameworkにおける依存性注入と制御の逆転とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] org.springframework.web.servlet.PageNotFound noHandlerFound URIを持つHTTPリクエストのマッピングが見つからない。
-
[解決済み】設定に「package」型のBeanを定義することを検討する【Spring-Boot】。
-
[解決済み] Spring Batchのステップスコープの仕組み
-
自動配線された依存関係のインジェクションに失敗する; 自動インジェクションに失敗する問題
-
クラスパス上に Spring WebApplicationInitializer のタイプが検出されない Loading configuration file not found or spring main configuration not found.
-
ERROR StatusLogger Log4j2 の設定ファイルがテストに表示されない
-
[解決済み] postmanでサポートされていないメディアタイプ
-
[解決済み】Spring MVCとSpring Bootの違い【終了しました
-
[解決済み】ビーン初期化完了後にメソッドを呼び出すには?
-
[解決済み] Spring RestTemplateのタイムアウト