当前位置: 首页 > 知识库问答 >
问题:

在Spring数据中使用Querydsl的最佳实践

艾弘义
2023-03-14

使用Spring Data nad Querydsl,我们可以只声明存储库接口并跳过实现类。一些具有特定名称或使用@Query注释的方法,仅此而已。

但是有时我想使用JPAQuery并自己定义方法的主体,比方说

@Repository
public class MyRepositoryImpl implements MyRepository {

    @PersistenceContext
    private EntityManager em;

    @Override
    public List<Tuple> someMethod(String arg) {
        JPAQuery query = new JPAQuery(em);
        ...
    }
    null

共有1个答案

弘柏
2023-03-14

您不应该实现实际的Spring数据存储库,而是必须声明另一个可以放置自定义方法的自定义接口。

假设您有一个MyRepository,定义为

@Repository
public interface MyRepository extends JpaRepository<Tuple, Long> {}

现在您想添加您的自定义findtuplesbymyarg(),出于目的,您需要创建自定义存储库接口

public interface MyRepositoryCustom {
   List<Tuple> findTuplesByMyArg(String myArg);
}
public class MyRepositoryImpl implements MyRepositoryCustom {
    @PersistenceContext
    private EntityManager em;

    @Override
    public List<Tuple> findTuplesByMyArg(String myArg) {
        JPAQuery query = new JPAQuery(em);
        ...
    }    
}
@Repository
public interface MyRepository extends JpaRepository<Tuple, Long>, MyRepositoryCustom {}
@Service
public class MyService {
   @Autowired
   private MyRepository myRepository;

   public List<Tuple> retrieveTuples(String myArg) { 
      return myRepository.findTuplesByMyArg(myArg);
   }
}

你可以在这里找到所有需要的信息

 类似资料:
  • 最近我考虑了在MySQL数据库中存储历史数据的最佳实践。目前,每个可版本表都有两列-和,都是类型。具有当前数据的记录的填充了其创建日期。当我更新此行时,我将填充更新日期,并使用添加新记录,与前一行中的相同-简单的操作。但是我知道这个表会非常大,非常快,所以获取数据会非常慢。 我想知道您是否有存储历史数据的实践?

  • 我有一个Spring mvc项目,有Spring data、jpa和hibernate。我有一个多语言数据库。我设计了我的数据库和实体。我正在寻找一种按语言查询表的最佳实践。我必须编写自定义jpa查询吗,或者有一种通用的方法来查询我的表。 如果我在数据库或实体设计上有错误,请警告我。 数据库: 本地化字符串实体: 多语言字符串实体: 类别实体: 类别存储库: 我怎么能传递一个语言参数到并获得该语言

  • 我正在做我的第一个react项目,我有一个问题。 使用,在react中处理和存储数据的最佳方法是什么? 我当前的工作流程: 在 将数据存储在(例如在中作为子对象` 使用控件的属性中的数据,如

  • 我开始创建一个系统,我(作为目前唯一的用户)将加载一个动态创建的PHP页面,该页面具有

  • 问题内容: 我正在开发一个J2ME应用程序,该应用程序具有要存储在设备上的大量数据(大约1MB,但是可变)。我不能依靠文件系统,所以我卡住了记录管理系统(RMS),该系统允许多个记录存储,但每个记录存储空间都有限。我最初的目标平台Blackberry将每个限制为64KB。 我想知道是否还有其他人必须解决在RMS中存储大量数据的问题,以及他们如何进行管理?我正在考虑必须计算记录大小并在多个存储区中拆

  • 问题内容: 我的用户数据库中有一些我希望进行加密的数据。要求时,大多数数据将需要解密,但是也有一些密码可以保持加密(过去我们会使用 pwdcompare, 但我相信现在已经过时了)。 我已经按照这里的步骤进行操作,所以现在我已经成功地加密了我的数据。 我不了解的是在运行时打开主密钥以加密/解密数据的正确方法。如果我想使用存储过程来检索加密的数据,该如何打开主密钥?我是否使用存储的proc参数传递主