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

在micronaut中创建可组合存储库

艾心远
2023-03-14

我正在尝试使用Micronaut中的可组合存储库实现一个方法。

我有:

@Repository
public interface EmployeeRepository extends CrudRepository<Employee, Long>, EmployeeRepositoryCustom {
}

在这里,EmployeeRepositoryCustom是一个带有“list()”方法的接口:

public interface EmployeeRepositoryCustom {
    List<Employee> list();
}

然后我有一个实现接口方法的EmployeeRepositoryCustomImpl类:

public class EmployeeRepositoryCustomImpl implements EmployeeRepositoryCustom {
    @PersistenceContext
    EntityManager em;

    @Override
    @Transactional
    public List<Employee> list() {

       // implementation code
    }
}

当我使用以下方法调用该方法时:

@Inject

EmployeeRepository employeeRepository;

public List<Employee> get(){
     return employeeRepository.list();
}

我得到以下消息:

java.lang.IllegalStateException: Micronaut Data method is missing compilation time query information. Ensure that the Micronaut Data annotation processors are declared in your build and try again with a clean re-build. 


我尝试在EmployeeRepositoryCustom和EmployeeRepositoryCustomImpl上添加注释@Repository,但它仍然给出相同的错误消息。有什么办法把这件事搞定吗?

我知道我可以只注入EmployeeRepositoryCustom类并访问该方法,但我希望使用可组合的repository方法来实现。因为employee存储库来自另一个模式(不是默认的数据源,而是另一个数据源),并且我希望能够指定该模式,如下所示:

@Repository("schema2")

共有1个答案

孟新知
2023-03-14

您不应该创建接口的实现。如果您希望有自己的代码的方法,您可以将存储库创建为抽象类,并将您想要为您实现的方法保留为抽象,然后您可以创建任何具体的方法。

 类似资料:
  • 我还要做什么吗? 我在shell中使用的命令是: 现在,当我键入时,它显示: 我如何让这个标签出现在GitHub上?我的标签呢?

  • 有没有一种方法可以将一组播放器存储在SQL数据库的一个列中? 我有一个events表,我想在表中名为的列下存储所有输入该事件的玩家。 进入者都将来自表。 我找到了set属性,但这看起来需要指定set可以包含的特定值。我现在知道这些,但在将来,表很可能会改变。 所以我想, 在表中添加一个列,名为,该列包含一组 该选项最初应为空,但当玩家进入该事件时,他们将被添加到集合中。 从Java方面来看,当我从

  • 经过安装Spring屋顶的痛苦。我正在尝试创建一个项目。然而,在通过spring shell创建了pojo之后,我现在正在创建spring存储库。我运行了以下命令来创建POJO 到目前为止一切都很好,但麻烦来了: 我立刻得到这个消息——实体选项应该是一个实体。我被卡住了。我尝试删除pojo并运行以下命令: 我得到的消息是:< code >“选项‘test automatically’,‘activ

  • 主要内容:创建一个远程存储库在本章中,我们将看到如何创建一个远程Git仓库; 我们需要一个远程Git仓库来执行团队协作。这一篇文章很重要,直接影响到后面的章节的学习。所以,希望大家可先耐心地看完本章内容,并按本章一步步的操作。 创建一个远程存储库 我们将演示在 http://git.oschina.net/ 软件项目的托管平台上创建和初始化一个新的存储库。 注:你也可以使用 GitHub (http://github.com

  • 一些背景 我正在解决一个问题,我将集合存储在hashmap中,其中键是集合名,即Set1-- 该程序的目的是从用户那里取一个值作为“阈值”,即2,它用于集合之间的最小共性。如果达到或超过阈值,程序建议集合之间合并。 我已经创建了一个组合生成器,它将生成集合名称之间的所有可能组合,以便与未考虑的顺序进行比较,即(Set1,Set2,),(Set1,Set3),(Set2,Set3),(Set1,Se

  • 我试图在我的Micronaut应用程序中使用jOOQ,并将jOOQ DSLContext作为一个注入bean自动提供给我的构造函数,但它无法找到该bean。 我在application.yml中配置了数据源以连接到postgres db,并声明了如下构造函数: 我在我的构建中包含了以下依赖项。gradle 我希望可以访问DSLContext并在RepositoryImpl类中编写查询,但在尝试使用