2017-12-31 112 views
1

私は同じエンティティレイヤーを共有するスプリングブートアプリケーションを持っています。これまでエンティティはすべてのプロジェクトで重複していました。 私はすべてのエンティティを分離したmavenアーティファクトに抽出しました。私は自分のプロジェクトから新しいアーティファクトに依存関係を追加しました。 実行できないテスト以外はすべて正常に動作しているようです。 私のテストを実行しているとき、私は次のエラーを取得する:以下には外部ジャー依存性が含まれています。スプリングブートテスト

Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: PIM_SECURITIES 
at org.hsqldb.error.Error.error(Unknown Source) ~[hsqldb-2.2.8.jar:2.2.8] 
at org.hsqldb.error.Error.error(Unknown Source) ~[hsqldb-2.2.8.jar:2.2.8] 
at org.hsqldb.SchemaManager.getTable(Unknown Source) ~[hsqldb-2.2.8.jar:2.2.8] 
at org.hsqldb.ParserDQL.readTableName(Unknown Source) ~[hsqldb-2.2.8.jar:2.2.8] 
at org.hsqldb.ParserDQL.readSimpleRangeVariable(Unknown Source) ~[hsqldb-2.2.8.jar:2.2.8] 
at org.hsqldb.ParserDML.compileInsertStatement(Unknown Source) ~[hsqldb-2.2.8.jar:2.2.8] 
at org.hsqldb.ParserCommand.compilePart(Unknown Source) ~[hsqldb-2.2.8.jar:2.2.8] 
at org.hsqldb.ParserCommand.compileStatements(Unknown Source) ~[hsqldb-2.2.8.jar:2.2.8] 
at org.hsqldb.Session.executeDirectStatement(Unknown Source) ~[hsqldb-2.2.8.jar:2.2.8] 
at org.hsqldb.Session.execute(Unknown Source) ~[hsqldb-2.2.8.jar:2.2.8] 
at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source) ~[hsqldb-2.2.8.jar:2.2.8] 
at org.hsqldb.jdbc.JDBCStatement.execute(Unknown Source) ~[hsqldb-2.2.8.jar:2.2.8] 

が見つかりませんオブジェクトは、エンティティの成果物である私の春のブートテストクラスの定義

@ContextConfiguration(classes = {AccountsDao.class, SecuritiesDao.class, TasksDao.class}) 
@RunWith(SpringRunner.class) 
@DataJpaTest 
@Transactional 
@ActiveProfiles("test") 
public class DalLayerTests extends 
AbstractTransactionalJUnit4SpringContextTests {} 

です。

mavenのテストスコープで実行するためにアーティファクトを追加しようとしましたが、それは役に立ちませんでした。 注釈を@ContextConfiguration(クラス)の注釈に追加しようとしましたが、それは役に立ちませんでした。

あなたのご協力をお待ちしております。

答えて

1

テーブル名が大文字に変更されるため、テーブル名が小文字で構成される場合、Hsqldbはテーブル名を大文字に変更します。

  1. 変更テーブル名の大文字へ - :ケースには、以下がuserful提供する2つのオプションは、エラーの原因である可能性があります。
  2. は、それを暗黙の大文字のテーブル名の手順を回し、私はようやく春のコンテキストがテストで私のエンティティを読み込むようにする方法を見つけhere
+0

テストは既にうまくいっているとは思わないので、エンティティレイヤーを新しいmavenプロジェクトに分割し、そのアーティファクトに新しい依存関係を追加しました –

+0

は埋め込まれたテーブルですか?データベースが作成されましたか? – user3442047

+0

データベースは完全に作成されていますが、実際のエンティティとしてエンティティをスキャンして読み込むことはできませんでした。私はそれのための解決策を見つけた、あなたは私の答えを見ることができます。お手伝いをしていただきありがとうございます! –

1

参照してください。テストクラスにアノテーションを使用してプロパティを追加するいくつかの理由 entitymanager.packagesToScan = com.pim

:製造において

私が持っている特性を持つファイル @TestPropertySource(プロパティ= {「EntityManagerを。 packagesToScan = com.pim.common "})

は、いずれかが影響を与えていなかった、とクラスで次のアノテーションを置くことは、問題を解決:

@EntityScan(basePackages = "com.pim")

関連する問題