草庐IT

QueryDSL-JPA

全部标签

spring - 将 Querydsl 与 Spring Data 一起使用时的最佳实践

使用SpringData和Querydsl,我们可以只声明存储库接口(interface)并跳过实现类。一些具有特定名称或使用@Query注解的方法,仅此而已。但有时我想使用JPAQuery并自己定义方法的主体,比如说@RepositorypublicclassMyRepositoryImplimplementsMyRepository{@PersistenceContextprivateEntityManagerem;@OverridepublicListsomeMethod(Stringarg){JPAQueryquery=newJPAQuery(em);...}但是这样我将不得不

spring - 如何使用用户定义的偏移量和限制(范围)通过 Spring 数据 JPA 查询数据

是否可以在用户定义的范围内获取数据[intstartrecord-intlastrecord]?在我的情况下,用户将在查询字符串中定义,他想要在其中获取数据的范围。我已经尝试过这样的事情Pageablepageable=newPageRequest(0,10);Pagelist=projectRepository.findAll(spec,pageable);spec是我定义的规范,但不幸的是,这无济于事。可能是我在这里做错了什么。我见过其他springjpa提供的方法,但没有什么帮助。用户可以输入类似localhost:8080/Section/employee的内容吗?范围{"co

java - JPA findBy 字段忽略大小写

如何使用的IgnoreCase进行findByIn搜索?我尝试使用findByNameIgnoreCaseIn和findByNameInIgnoreCase没有结果。DB是Postgresql。@RepositorypublicinterfaceUserRepository{ListfindByNameIgnoreCaseIn(ListuserNames);} 最佳答案 试试这样的:ListfindByNameInIgnoreCase(ListuserNames); 关于java-JPA

java - 如何在 save() 之前阻止 spring data JPA 执行 SELECT?

我们正在针对现有数据库编写一个新应用程序。我正在使用SpringDataJPA,并且只是在做一个MyRepository.save()在我的新实体上,使用MyRepositoryextendsCrudRepository我在日志中注意到hibernate在插入之前执行了一个Select操作,并且它们需要很长时间,即使在使用索引时也是如此。我在这里搜索过这个,answersI'vefound通常与Hibernate相关。我对JPA很陌生,看起来JPA和Hibernate非常紧密地交织在一起,至少在SpringData的上下文中使用它时是如此。链接的答案建议使用Hibernatepersi

java - Spring JPA Query 返回 Null 而不是 List

我有一个@EntityVideo与Listtags具有一对多关系作为其领域之一。我使用以下@Repository使用SpringData获取最流行的标签:@RepositorypublicinterfaceTagRepositoryextendsCrudRepository{@Query("SELECTtFROMTagtWHERE(SELECTSUM(v.views)FROMVideovWHEREtMEMBEROFv.tags)>0")publicListfindMostViewedTags(intmaxTags);}Query被Spring处理并认为是有效的,我在本地测试了生成的SQ

Spring 数据 jpa @transactional

下面是我的申请流程Controller-服务-存储库在服务层我们有@Transactional注释我们还有jpa:repository配置,我们在其中指定实体管理器和txn管理器。我的怀疑是我觉得jpa:repositories中指定的txnmanager被考虑了,在服务层指定@Transactional没有影响。例如:服务层@Transactional可以映射到自定义txn管理器,因为服务调用的存储库可能有不同的txn管理器。那样会不会有问题?有人可以澄清一下,当我们使用jpa存储库时,我们是否需要将@Transactional放在服务层? 最佳答案

Spring 3.1 + Hibernate 4.1 JPA,Entity manager factory注册两次

我使用SpringFramework3.1和Hibernate4.1作为JPA提供程序,并且我有一个功能齐全的设置,但每次启动Web应用程序时我都会看到以下警告消息:14:28:12,725WARNpool-2-thread-12internal.EntityManagerFactoryRegistry:80-HHH000436:Entitymanagerfactoryname(something)isalreadyregistered.Ifentitymanagerwillbeclusteredorpassivated,specifyauniquevalueforproperty'h

java - 为什么添加 @EnableAutoConfiguration 会导致 spring-boot 失败并显示 "Unable to find JPA packages to scan"

为什么将@EnableAutoConfiguration添加到以下spring-boot应用程序会导致它无法创建entityManagerFactory?如果我删除@EnableAutoConfiguration一切正常。任何人都可以阐明这种行为吗?packagetest.builder;importjavax.sql.DataSource;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.beans.factory.annotation.Value;importorg.spri

java - 带有 Projection 的 Spring JPA native 查询给出 "ConverterNotFoundException"

我正在使用SpringJPA,我需要一个native查询。通过该查询,我只需要从表中获取两个字段,因此我尝试使用Projections.它不起作用,这是我得到的错误:org.springframework.core.convert.ConverterNotFoundException:Noconverterfoundcapableofconvertingfromtype[org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap]totype[com.examp

java - FetchMode join 对 Spring JPA 存储库中的 ManyToMany 关系没有影响

我正在尝试这样做://...classPerson{@ManyToMany(fetch=FetchType.EAGER)@Fetch(FetchMode.JOIN)privateSetgroups;//...}当我通过SpringJPA存储库执行personRepository.findAll();时,它会生成n+1个查询,就好像我没有设置任何@Fetch.(一个查询首先获取所有人员,然后每个人一个查询获取组)。虽然使用@Fetch(FetchMode.SUBSELECT)有效!它只生成2个查询。(所有人一份,然后团体一份)。所以hibernate对一些获取参数使用react,而不是J