Tag: spring data

使用@Query使用hibernate更新spring数据jpa中的布尔值

我有弹簧数据和hibernateconfiguration和运行。 我可以使用spring-data保存logging,但由于某些原因,我无法运行将更新表中所有布尔字段的查询。 我试过这个: @Query("update Content v set v.published = false where v.division = :division and v.section = :section") void unPublishContent(@Param("division") String division, @Param("section") String section); 我也试过这个: @Query("update Content v set v.published = 0 where v.division = :division and v.section = :section") void unPublishContent(@Param("division") String division, @Param("section") String section); 参数分区和部分实现,但没有变化的表格。 ps我也使用mysql数据库。

如何在Spring数据中使用@Transactional?

我刚刚开始研究Spring-data,Hibernate,MySQL和JPA项目。 我切换到spring-data,这样我就不用担心手工创build查询。 我注意到,当使用spring-data时,不需要使用@Transactional,因为我也尝试了没有注解的查询。 是否有一个特定的原因,我应该/不应该使用@Repository注释? 作品: @Transactional public List listStudentsBySchool(long id) { return repository.findByClasses_School_Id(id); } 也适用于: public List listStudentsBySchool(long id) { return repository.findByClasses_School_Id(id); } 提前致谢!

Spring数据jpa-没有定义名为“entityManagerFactory”的bean; 注入自动装载的依赖关系失败

我正在开发应用程序使用spring的数据jpa,hibernate,mysql,tomcat7,maven和它的创build错误。我试图弄清楚,但我失败了。 错误是在设置构造函数参数的时候无法parsingbean的'entityManagerFactory'引用; 没有定义名为“entityManagerFactory”的bean; 注入自动装载的依赖关系失败 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'initDbService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.wahid.cse.repository.RoleRepository org.wahid.cse.service.InitDbService.roleRepository; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'roleRepository': Cannot create inner bean '(inner bean)#c08f81' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: […]

Spring Boot以及如何将连接细节configuration到MongoDB?

作为Spring Boot的新手我想知道如何为MongoDBconfiguration连接细节。 我已经尝试了正常的例子,但没有涵盖连接的细节。 我想指定要使用的数据库以及运行MongoDB的主机的url / port。 任何提示或提示?

如何在弹簧容器之外使用Spring Data JPA?

我正在尝试连接Spring Data JPA对象,以便我可以生成DAO代理(又名存储库) – 不使用Spring bean容器。 不可避免的是,我会被问到为什么要这样做:这是因为我们的项目已经在使用Google Guice(并且在使用Gin和GWT的UI上),我们不想维护另一个IoC容器configuration,所有由此产生的依赖关系。 我知道我们可以使用Guice的SpringIntegration ,但这是最后的手段。 看起来,所有东西都可以手动连接对象,但由于没有很好的文档logging,所以我很困难。 根据Spring Data用户指南, 独立使用仓库工厂是可能的。 不幸的是,这个例子显示了RepositoryFactorySupport是一个抽象类。 经过一番search,我设法findJpaRepositoryFactory JpaRepositoryFactory实际上工作得很好,除了它不会自动创build事务。 事务必须手动pipe理,否则什么都不会持久化到数据库: entityManager.getTransaction().begin(); repositoryInstance.save(someJpaObject); entityManager.getTransaction().commit(); 问题原来是@Transactional注释不会自动使用,并需要一个TransactionInterceptor 值得庆幸的是,在返回之前, JpaRepositoryFactory可以进行callback以将更多的AOPbuild议添加到生成的Repository代理中: final JpaTransactionManager xactManager = new JpaTransactionManager(emf); final JpaRepositoryFactory factory = new JpaRepositoryFactory(emf.createEntityManager()); factory.addRepositoryProxyPostProcessor(new RepositoryProxyPostProcessor() { @Override public void postProcess(ProxyFactory factory) { factory.addAdvice(new TransactionInterceptor(xactManager, new AnnotationTransactionAttributeSource())); } }); 这是事情做得不好的地方。 通过代码中的debugging器, TransactionInterceptor确实创build了一个事务 – […]

为什么要在Spring Data JPA Repository上的save()之后使用返回的实例?

这里是代码: @Repository public interface AccountRepository extends JpaRepository<Account, Long> {} 来自Spring Data JPA项目的JpaRepository 。 这里是testing代码: public class JpaAccountRepositoryTest extends JpaRepositoryTest { @Inject private AccountRepository accountRepository; @Inject private Account account; @Test @Transactional public void createAccount() { Account returnedAccount = accountRepository.save(account); System.out.printf("account ID is %d and for returned account ID is %d\n", account.getId(), returnedAccount.getId()); } } 结果如下: account […]

何时使用@RestController vs @RepositoryRestResource

我一直在研究如何在REST中使用Spring的各种示例。 我们的最终目标是Spring HATEOAS / HAL设置 我已经看到了在Spring中呈现REST的两种不同的方法 通过Controller中的@RestController 通过@RepositoryRestResource中的@RepositoryRestResource 我正在努力寻找的东西是为什么你会用另一个。 当试图实施最好的HAL? 我们的数据库后端是Neo4j。

spring的数据:“删除”支持?

我正在使用Spring JPA进行数据库访问。 我能find例如findByName和countByName,为此我不必写任何方法的实现。 我希望find一些基于某些条件删除一组logging的例子。 Spring JPA是否支持deleteByName-like删除? 任何指针表示赞赏。 问候和感谢。

Spring Data JPA通过embedded对象属性来查找

我想编写一个Spring Data JPA存储库接口方法签名,它使我能够在该实体中find具有embedded对象属性的实体。 有谁知道这是可能的,如果是的话,怎么样? 这是我的代码: @Entity @Table(name = "BOOK_UPDATE_QUEUE", indexes = { uniqueConstraints = @UniqueConstraint(columnNames = { "bookId", "region" }, name = "UK01_BOOK_UPDATE_QUEUE")) public class QueuedBook implements Serializable { @Embedded @NotNull private BookId bookId; … } @Embeddable public class BookId implements Serializable { @NotNull @Size(min=1, max=40) private String bookId; @NotNull @Enumerated(EnumType.STRING) private Region region; … […]

如何testingSpring数据仓库?

我想要一个在Spring Data的帮助下创build的仓库(比如UserRepository )。 我是新的春季数据(但不是spring),我用这个教程 。 我select处理数据库的技术是JPA 2.1和Hibernate。 问题是,我对如何为这样的存储库编写unit testing一无所知。 让我们以create()方法为例。 由于我正在testing第一,所以我应该写一个unit testing – 这就是我遇到的三个问题: 首先,如何将一个EntityManager的模拟注入UserRepository接口的不存在的实现中? Spring Data会根据这个接口生成一个实现: public interface UserRepository extends CrudRepository<User, Long> {} 然而,我不知道如何强制它使用EntityManager模拟和其他模拟 – 如果我自己写了实现,我可能会有一个EntityManager的setter方法,允许我使用我的模拟进行unit testing。 (至于实际的数据库连接,我有一个JpaConfiguration类,用@Configuration和@EnableJpaRepositories注释,它在编程上为DataSource , EntityManagerFactory , EntityManager等定义了bean。但是,存储库应该是testing友好的并允许重写这些东西)。 其次,我应该testing一下互动吗? 我很难弄清楚应该调用什么EntityManager和Query方法(类似于verify(entityManager).createNamedQuery(anyString()).getResultList(); ),因为不是我正在写执行。 第三,我应该首先对Spring数据生成的方法进行unit testing吗? 据我所知,第三方库代码不应该被unit testing – 只有开发者编写的代码应该是unit testing的。 但是,如果这是真的,它仍然会把第一个问题带回到现场:比如,我有一些自定义方法用于存储库,为此我将编写实现,如何将EntityManager和Query的EntityManager注入最终,生成存储库? 注意:我将使用集成testing和unit testing来testing我的版本库。 对于我的集成testing,我正在使用HSQL内存数据库,显然我没有使用数据库进行unit testing。 也许是第四个问题,在集成testing中testing正确的对象图创build和对象图检索是否正确(比如,我有一个用Hibernate定义的复杂对象图)? 更新:今天我继续尝试模拟注入 – 我创build了一个静态内部类允许模拟注入。 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration @Transactional […]