タグ付けされた質問 「spring-data」

Spring Dataは、特定のデータベースに固有の多数のサブプロジェクトを含む包括的なオープンソースプロジェクトです。プロジェクトは、これらのエキサイティングなテクノロジーの背後にある多くの企業やコミュニティと協力して開発されています。

30
Spring Data Mavenビルドの「ライフサイクル構成ではカバーされないプラグインの実行」を解決する方法
Spring DataとNeo4jを使用しようとしています。まず、メインサイトからリンクされているこのガイドを試してみました。特に、私はpom.xmlを「Hello、World!」に基づいています。サンプルファイル。これは、問題を引き起こしているプラ​​グインの私のpom.xmlからの抜粋です... <plugin> <!-- Required to resolve aspectj-enhanced class features --> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.0</version> <configuration> <outxml>true</outxml> <aspectLibraries> <aspectLibrary> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> </aspectLibrary> <aspectLibrary> <groupId>org.springframework.data</groupId> <artifactId>spring-data-neo4j</artifactId> </aspectLibrary> </aspectLibraries> <source>1.6</source> <target>1.6</target> </configuration> <executions> <!-- ERROR HERE IN ECLIPSE SEE BELOW FOR FULL MESSAGE --> <execution> <goals> <goal>compile</goal> <goal>test-compile</goal> </goals> </execution> </executions> <dependencies> <dependency> …


7
Spring DataでfindAllでOrderByを使用する方法
私は春のデータを使用しており、DAOは次のようになります public interface StudentDAO extends JpaRepository<StudentEntity, Integer> { public findAllOrderByIdAsc(); // I want to use some thing like this } 上記のコードでは、コメント行が私の意図を示しています。Spring Dataは、ASC / DESCのある列ですべてのレコードの順序を見つけるためにそのような方法を使用する組み込み機能を提供できますか?

30
Spring Boot-データベースタイプNONEの組み込みデータベースドライバークラスを判別できません
これは、私のWebアプリを実行しようとするとスローされるエラーです。 [INFO] WARNING: Nested in org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private javax.sql.DataSource org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.dataSource; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceAutoConfiguration$NonEmbeddedConfiguration.class]: Instantiation of bean failed; nested exception …

12
JpaTestの実行時に@SpringBootConfigurationが見つかりません
私はフレームワークの初心者(クラスを渡されたばかり)で、Spring Bootを初めて使用します。 簡単なJunitテストを実行して、CrudRepositoriesが実際に機能しているかどうかを確認しようとしています。 私が取得し続けるエラーは次のとおりです。 @SpringBootConfigurationが見つかりません。テストjava.lang.IllegalStateExceptionで@ContextConfigurationまたは@SpringBootTest(classes = ...)を使用する必要があります Spring Bootはそれ自体を構成しませんか? 私のテストクラス: @RunWith(SpringRunner.class) @DataJpaTest @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class JpaTest { @Autowired private AccountRepository repository; @After public void clearDb(){ repository.deleteAll(); } @Test public void createAccount(){ long id = 12; Account u = new Account(id,"Tim Viz"); repository.save(u); assertEquals(repository.findOne(id),u); } @Test public void findAccountByUsername(){ …

17
Spring Boot-初期データの読み込み
アプリケーションが開始する前に初期データベースデータをロードするための最良の方法は何ですか?私が探しているのは、H2データベースにデータを入力するものです。 たとえば、/ usersにアクセスしてユーザーにアクセスできるドメインモデル「ユーザー」がありますが、最初はデータベースにユーザーがいないため、ユーザーを作成する必要があります。とにかくデータベースにデータを自動的に入力する方法はありますか? 現時点では、コンテナーによってインスタンス化され、ユーザーを作成するBeanがあります。 例: @Component public class DataLoader { private UserRepository userRepository; @Autowired public DataLoader(UserRepository userRepository) { this.userRepository = userRepository; LoadUsers(); } private void LoadUsers() { userRepository.save(new User("lala", "lala", "lala")); } } しかし、それが最善の方法であるかどうかは非常に疑問です。またはそれは?

3
Spring CrudRepository findByInventoryIds(List <Long> inventoryIdList)-IN句に相当
Spring CrudRepositoryでは、フィールドの「IN句」をサポートしていますか?つまり、次のようなものですか? findByInventoryIds(List&lt;Long&gt; inventoryIdList) そのようなサポートが利用できない場合、どのエレガントなオプションを検討できますか?各IDのクエリを実行することは最適ではない場合があります。

11
Spring Data JPAにカスタムメソッドを追加する方法
Spring Data JPAを調査しています。デフォルトですべてのクラッドおよびファインダー機能を動作させる以下の例を考えます。ファインダーをカスタマイズしたい場合は、インターフェース自体でも簡単に実行できます。 @Transactional(readOnly = true) public interface AccountRepository extends JpaRepository&lt;Account, Long&gt; { @Query("&lt;JPQ statement here&gt;") List&lt;Account&gt; findByCustomer(Customer customer); } 上記のAccountRepositoryの実装に完全なカスタムメソッドを追加するにはどうすればよいですか?インターフェースなので、そこでメソッドを実装することはできません。

7
getOneおよびfindOneメソッドを使用する場合、Spring Data JPA
私はそれが以下を呼び出すユースケースを持っています: @Override @Transactional(propagation=Propagation.REQUIRES_NEW) public UserControl getUserControlById(Integer id){ return this.userControlRepository.getOne(id); } 観察し@TransactionalているPropagation.REQUIRES_NEWとリポジトリの用途にgetoneを。アプリを実行すると、次のエラーメッセージが表示されます。 Exception in thread "main" org.hibernate.LazyInitializationException: could not initialize proxy - no Session ... しかし、私が変更した場合getOne(id)、findOne(id)すべて正常に動作します。 ところで、ユースケースがgetUserControlByIdメソッドを呼び出す直前に、それはすでにinsertUserControlメソッドを呼び出しています @Override @Transactional(propagation=Propagation.REQUIRES_NEW) public UserControl insertUserControl(UserControl userControl) { return this.userControlRepository.save(userControl); } 単純な監査制御を行っているため、どちらの方法もPropagation.REQUIRES_NEWです。 getOneメソッドはJpaRepositoryインターフェースで定義されており、Repositoryインターフェースはそこから拡張されているため、私はこのメソッドを使用しています。もちろん、JPAを使用しています。 JpaRepositoryインターフェースから延びCrudRepository。findOne(id)方法は、で定義されていますCrudRepository。 私の質問は: なぜgetOne(id)メソッドが失敗するのですか? いつgetOne(id)メソッドを使用する必要がありますか? 私は他のリポジトリを使用していますが、すべてこのgetOne(id)方法を使用しており、すべて正常に機能します。Propagation.REQUIRES_NEWを使用した場合にのみ失敗します。 getOne APIによると: 指定された識別子を持つエンティティへの参照を返します。 findOne APIによると: エンティティをIDで取得します。 3)いつfindOne(id)メソッドを使用する必要がありますか? …

7
Spring ControllerでJPAおよびHibernateとのFetchType.LAZY関連付けをフェッチする方法
私はPersonクラスを持っています: @Entity public class Person { @Id @GeneratedValue private Long id; @ManyToMany(fetch = FetchType.LAZY) private List&lt;Role&gt; roles; // etc } 怠惰な多対多の関係で。 私のコントローラーには @Controller @RequestMapping("/person") public class PersonController { @Autowired PersonRepository personRepository; @RequestMapping("/get") public @ResponseBody Person getPerson() { Person person = personRepository.findOne(1L); return person; } } そして、PersonRepositoryはこのガイドに従って書かれたまさにこのコードです public interface PersonRepository extends …

17
春のブーツ-管理されたタイプではありません
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.&lt;init&gt;(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 { …

8
Spring Dataリポジトリをテストする方法は?
UserRepositorySpring Dataの助けを借りて作成されたリポジトリ(たとえば、)が必要です。私はspring-dataを初めて使用しますが(springは使用しません)、このチュートリアルを使用します。データベースを扱うための私のテクノロジーの選択は、JPA 2.1とHibernateです。問題は、そのようなリポジトリの単体テストを作成する方法について私が無知であることです。 create()メソッドを例にとってみましょう。私は最初にテストを行っているので、そのための単体テストを作成することになっています。そこで、3つの問題にぶつかります。 最初に、インターフェイスのEntityManager存在しない実装にモックを注入するにはどうすればよいUserRepositoryですか?Spring Dataはこのインターフェースに基づいた実装を生成します: public interface UserRepository extends CrudRepository&lt;User, Long&gt; {} ただし、EntityManagerモックや他のモックを使用するように強制する方法がわかりません。自分で実装を記述した場合、おそらくのセッターメソッドがありEntityManager、モックをユニットテストに使用できます。(実際のデータベース接続に関しては、およびのJpaConfiguration注釈が付けられたクラスが@Configurationあり@EnableJpaRepositories、プログラムDataSourceによってEntityManagerFactory、EntityManagerなどのBeanを定義していますが、リポジトリはテストに適しており、これらのものをオーバーライドできる必要があります)。 次に、相互作用をテストする必要がありますか?私はどのような方法を把握することは困難であるEntityManagerとQuery(それに似呼ばれるようになっているverify(entityManager).createNamedQuery(anyString()).getResultList();)、それは実装を書いている人は私ではないので、。 3番目に、Spring-Dataで生成されたメソッドを最初に単体テストする必要がありますか?私が知っているように、サードパーティのライブラリコードは単体テストではなく、開発者自身が作成したコードのみが単体テストされることになっています。しかし、それは本当ならば、それはまだシーンに最初の質問の背中をもたらします:言うが、私は実装を書くことになるための私のリポジトリ用のカスタムメソッドのカップルを、持って、どのように私は私のモック注入しないEntityManagerとQuery生成され、最終的にはリポジトリ? 注:統合テストと単体テストの両方を使用してリポジトリをテストします。統合テストではHSQLインメモリデータベースを使用していますが、単体テストではデータベースを使用していません。 そしておそらく4番目の質問は、統合テストで正しいオブジェクトグラフの作成とオブジェクトグラフの取得をテストすることは正しいですか(たとえば、Hibernateで定義された複雑なオブジェクトグラフがあるとします)。 更新:今日はモックインジェクションの実験を続けました-モックインジェクションを可能にする静的内部クラスを作成しました。 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration @Transactional @TransactionConfiguration(defaultRollback = true) public class UserRepositoryTest { @Configuration @EnableJpaRepositories(basePackages = "com.anything.repository") static class TestConfiguration { @Bean public EntityManagerFactory entityManagerFactory() { return mock(EntityManagerFactory.class); } @Bean public EntityManager entityManager() { …

8
Spring-Data-JPAアノテーションのsetMaxResults?
Spring-Data-JPAをプロジェクトに組み込もうとしています。私を混乱させる1つのことは、アノテーションによってsetMaxResults(n)をどのように実現するかです。 たとえば、私のコード: public interface UserRepository extends CrudRepository&lt;User , Long&gt; { @Query(value="From User u where u.otherObj = ?1 ") public User findByOhterObj(OtherObj otherObj); } one (and only one)otherObjからUser を返す必要があるだけですが、maxResultsに注釈を付ける方法が見つかりません。誰かが私にヒントを与えることはできますか? (mysqlは不平を言う: com.mysql.jdbc.JDBC4PreparedStatement@5add5415: select user0_.id as id100_, user0_.created as created100_ from User user0_ where user0_.id=2 limit ** NOT SPECIFIED ** WARN util.JDBCExceptionReporter - …

2
Spring Bootのこのspring.jpa.open-in-view = trueプロパティとは何ですか?
spring.jpa.open-in-view=trueSpring BootのドキュメントでJPA構成のプロパティを見ました。 でtrue、それがすべてで提供されていない場合、このプロパティのデフォルト値は?; これは実際に何をしますか?私はそれについての良い説明を見つけることができませんでした。 SessionFactory代わりに使用させEntityManagerFactoryますか?はいの場合、EntityManagerFactory代わりに使用できるようにするにはどうすればよいですか? ありがとう!

9
Spring Bootですべてのデータベース関連の自動構成を無効にする
私はSpring Bootを使用して2つのアプリケーションを開発しています。1つはサーバーとして機能し、もう1つはクライアントアプリです。ただし、どちらも同じアプリであり、アクティブなプロファイルによって機能が異なります。Spring Bootの自動構成機能を使用してアプリケーションを構成しています。 データベース接続を必要としないので、クライアントアプリですべてのデータベース関連の自動構成を無効にします。アプリケーションは、データベースとの接続を確立しようとしたり、Spring Data機能やHibernate機能を使用したりしないでください。データベースの自動構成の有効化または無効化は、条件付きであり、アプリのアクティブなプロファイルに基づいている必要があります。 それぞれのプロファイルに対して2つの異なるapplication.propertiesファイルを作成することでこれを実現できますか? これを私のプロパティファイルに追加してみました、 spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration\ org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration\ org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration\ org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration ただし、アプリケーションは起動時にデータベースへの接続を試みます。それらの除外は私の要件を達成するのに十分ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.