Questions tagged «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> …


7
如何在Spring Data中将OrderBy与findAll一起使用
我正在使用spring数据,我的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,您需要将@ContextConfiguration或@SpringBootTest(classes = ...)与测试java.lang.IllegalStateException一起使用 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数据库。 例如,我有一个域模型“ User”,我可以通过转到/ 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")); } } 但是我非常怀疑这是最好的方法。还是?


11
如何向Spring Data JPA添加自定义方法
我正在研究Spring Data JPA。考虑下面的示例,默认情况下我将使所有crud和finder功能正常工作,如果我要自定义finder,那么也可以在界面本身中轻松完成。 @Transactional(readOnly = true) public interface AccountRepository extends JpaRepository<Account, Long> { @Query("<JPQ statement here>") List<Account> 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); } 观察@Transactionalhas具有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<Role> 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-不是托管类型
我使用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 { …

8
如何测试Spring Data存储库?
我想要UserRepository借助Spring Data创建的存储库(例如)。我是spring-data的新手(但不是spring),并且使用了本教程。我选择的用于处理数据库的技术是JPA 2.1和Hibernate。问题是我对如何为这样的存储库编写单元测试一无所知。 让我们以create()方法为例。当我首先进行测试时,应该为它编写一个单元测试-这就是我遇到的三个问题: 首先,我如何将an的模拟注入接口EntityManager的不存在的实现中UserRepository?Spring Data将基于此接口生成一个实现: public interface UserRepository extends CrudRepository<User, Long> {} 但是,我不知道如何强制它使用EntityManager模拟和其他模拟-如果我自己编写实现,则可能会有一个setter方法EntityManager,允许我将模拟用于单元测试。(对于实际的数据库连接性,我有一个JpaConfiguration类,用@Configuration和注释,该类以@EnableJpaRepositories编程方式定义了,等等的Bean DataSource,但是存储库应该易于测试,并且可以覆盖这些内容)。EntityManagerFactoryEntityManager 其次,我应该测试互动吗?我很难弄清楚应该调用EntityManager和的什么方法Query(类似于verify(entityManager).createNamedQuery(anyString()).getResultList();),因为编写实现的不是我。 第三,首先我应该对Spring-Data生成的方法进行单元测试吗?据我所知,第三方库代码不应该进行单元测试-只有开发人员自己编写的代码才应该进行单元测试。但是,如果这是真的,但它仍然带来的第一个问题回到场景:比方说,我有一对夫妇的自定义方法为我的仓库,为此,我会写的实现,我怎么注入我的嘲笑EntityManager,并Query进入决赛,产生仓库? 注:我将使用测试驱动我的仓库都集成和单元测试。对于我的集成测试,我使用的是HSQL内存数据库,而显然我没有使用数据库进行单元测试。 可能是第四个问题,在集成测试中测试正确的对象图创建和对象图检索是否正确(例如,我使用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
setMaxResults用于Spring-Data-JPA注释?
我正在尝试将Spring-Data-JPA合并到我的项目中。使我困惑的一件事是如何通过注释实现setMaxResults(n)? 例如,我的代码: public interface UserRepository extends CrudRepository<User , Long> { @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 - …


9
在Spring Boot中禁用所有与数据库相关的自动配置
我正在使用Spring Boot开发两个应用程序,一个用作服务器,另一个是客户端应用程序。但是,它们都是同一个应用程序,根据活动配置文件的功能有所不同。我正在使用Spring Boot的自动配置功能来配置我的应用程序。 我想在客户端应用程序上禁用所有与数据库相关的自动配置,因为它不需要数据库连接。应用程序不应尝试与数据库建立连接,也不应尝试使用任何Spring Data或Hibernate功能。启用或禁用数据库自​​动配置应该是有条件的,并且应基于应用程序的活动配置文件。 我可以通过为各自的配置文件创建两个不同的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 但是,该应用程序仍然尝试在启动时连接到数据库。这些排除条件足以满足我的要求吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.