Spring CrudRepository 查询子元素?

2024-03-12

我有如下的 couchbase 文件

{
  "contentTimestamp": 1470216079085,
  "version": 12,
  "content": [
    {
      "text": "ABC",
      "params": {
        "TYPE": "TEXT"
      }
    }
    ],
  "readers": {
    "u_id_1": 0,
    "u_id_2": 0,
  },
  "contributors": [
    {
      "id": "u_id_1"
    }
  ]
}

文档类

@Document
public class ContentDoc implements Serializable{

    private static final long serialVersionUID = 1L;


    @Id
    private String id;

    @Field
    private Integer version = 12;

    @Field
    private List<Content> content = new ArrayList<>();

    @Field
    private Map<String, Object> readers = new HashMap<>();

    //etc

    //getter setter

}

Service

@Service
public interface ContentDocRepository extends CrudRepository<ContentDoc, String> {

    public List<ContentDoc> findByReadersIn(String reader) throws Exception;

}

测试用例

@RunWith(SpringJUnit4ClassRunner.class)
public class Tests {

    @Autowired
    private ContentDocRepository contentDocRepository;

    @Test
    public void cotentDocRepoTest(){

        List<ContentDoc> contents = contentDocRepository.findByReadersIn("u_id_1");
        Assert.assertNotNull(contents);
        System.out.println(contents)
    }
}

我按照上面编写的代码,但无法检索结果总是得到空数组列表。

任何人都知道我的代码出了什么问题以及如何使用子元素执行查询?

提前致谢。


经过长时间的 RND 和实验我得到了解决方案,

我们无法找到具有方法名称的子元素,所以我们需要 按照我下面的回答去做

Steps :

  1. 按照以下步骤在 couchbase 中创建自定义视图

viewname: 按用户查找内容

function (doc, meta) {
  
  if(doc._class == "package.model.ContentDoc") {
    for(var i=0; i < doc.contributors.length; i++){
         emit(doc.contributors[i].id, null);
    }
       
  }
}  
  1. 存储库:使用 impl 方法绑定 viewname 和 designDocument,如下所示

     @Repository
     public interface ContentDocRepository extends CrudRepository<ContentDoc, String> {
    
        @View(viewName = "findContentByUser", designDocument="dev_content")
        public List<ContentDoc> findByContributors_id(String id);   
    }
    

终于得到结果了:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring CrudRepository 查询子元素? 的相关文章

  • Spring与AspectJ编译时编织导致:java.lang.VerifyError:非法使用非虚拟函数调用

    我正在尝试使用 Spring 的 AspectJ 编译时编织而不是
  • 在 Java 中将系统属性设置为 Null

    在我的单元测试中 我需要将 workingDir 系统属性设置为 Null 但我不能这样做 因为它给了我 NullPointerException System setProperty workingDir null 我该怎么做 您不能将属
  • Maven 配置文件相当于 Gradle

    我试图在我的 spring boot 项目构建中实现一个简单的场景 包括 排除依赖项以及根据环境打包 war 或 jar 例如 对于环境dev包括开发工具和包 jar 用于prod包战等 我知道它不再是基于 XML 的配置 我基本上可以在
  • android-透明RelativeLayout

    我想要制作一个具有可绘制渐变作为背景的活动 并将在其背景顶部显示 4 个面板 相对布局 现在我想让 4 个面板透明 例如 50 以便也可以看到渐变背景 我搜索了谷歌 但我发现只能通过活动而不是布局来做到这一点 如何做我想做的事 您可以创建一
  • 如何在 Spring Boot 1.4 中自定义 Jackson

    我一直无法找到如何使用的示例Jackson2ObjectMapperBuilderCustomizer java在spring boot 1 4中自定义Jackson的功能 boot 1 4 中自定义 Jackson 的 doco http
  • 使 TreeMap 比较器容忍 null

    这个定制的 Valuecomarator 按其值对 TreeMap 进行排序 但在搜索 TreeMap 是否具有某个键时 它不能容忍 nullpointException 如何修改比较器来处理零点 import java io IOExce
  • 使用 viewModel 从 ChildFragment 访问 ParentFragment 中的 ViewModel

    我正在尝试访问ParentViewModel for ParentFragment from ChildFragment using viewModels 这是我的代码 In ParentFragment class ParentFragm
  • 用dagger 2查看依赖注入

    我有一个自定义视图扩展TextView 我应该在哪里调用我的组件来注入视图 component inject customTextView 因此 我发现我需要在自定义视图的构造函数中添加注入 在所有视图中 或者使一个调用另一个 Exampl
  • 如何在Android Studio中关联.mp3文件

    我想根据列表视图项单击播放 mp3 文件 但是根据我的代码 我运行我的应用程序 出现此窗口 因此由于缺少音频选项 我真的不知道需要选择其中哪一个为了关联我的 mp3 文件 mainList setOnItemClickListener ne
  • 如何更改tomcat jmx密码的文件权限

    我正在尝试保护 Windows 平台上托管的本地 tomcat 实例上的 JMX 访问 我已经创建了访问权限和密码文件 并使用以下 VM 参数插入这些文件 Dcom sun management jmxremote password fil
  • 使用 Spring 注入 Google Guava Hashmultimap

    是否可以提供一个创建示例Multimap
  • 使用 java.nio.file.Paths 接口时缺少方案(IllegalArgumentException)

    这是一个非常简单的java问题 我在 Linux 系统上使用 Java 8 和 eclipse kepler 我一直在尝试尝试NIO 2 我的代码是 package lucasTest import java io IOException
  • 获取运行时生成的类的字节

    我正在使用一个 Java 框架 该框架使用自定义类加载器在运行时生成一些 代理 类 我想为任何这样的类获取自定义 ClassLoader 从 loadClass 返回的与该类对应的原始字节数组 这可能吗 我知道 如果一个类作为资源存在 那么
  • Java字符串中的字符数[重复]

    这个问题在这里已经有答案了 可能的重复 Java 使用unicode上划线显示平方根时字符串的长度 https stackoverflow com questions 7704426 java length of string when u
  • Jersey bean 验证 ParameterNameProvider

    我正在阅读关于泽西岛的文档Bean验证 https jersey java net documentation latest bean validation html The ParameterNameProvider示例显示如何定义方法的
  • bean 中的 Spring JavaConfig 属性未设置?

    我正在考虑将 Spring JavaConfig 与一些属性文件一起使用 但 bean 中的属性未设置 bean 中的属性未设置 这是我的网络配置 Configuration EnableWebMvc PropertySource valu
  • LinkedBlockingQueue 抛出 InterruptedException

    我有这段代码 ALinkedBlockingQueue应该只抛出一个Exception如果在等待添加到队列时被中断 但这个队列是无限的 所以它应该尽快添加 为什么我的关闭方法会抛出一个InterruptedException private
  • Selenium Webdriver 中的 IF 语句

    我想知道是否有人可以帮助我解决我正在尝试解决的问题以及 Java 中 Webdriver 的 If 语句 当登录到我正在测试的应用程序时 可以在主页之前进入安全问题页面 如果是新用户等 我希望测试中的代码做的是 如果出现安全问题页面 请填写
  • 如何使用SAXReader解析GPX文件?

    我正在尝试解析GPX file http en wikipedia org wiki GPS eXchange Format 我用 JDOM 尝试过 但效果不太好 SAXBuilder builder new SAXBuilder Docu
  • Ant 类路径和 junit.jar

    我有一个 build xml 它允许我运行 junit 测试 这是相关部分

随机推荐

  • 每天在设定时间用 Swift 发出通知? [复制]

    这个问题在这里已经有答案了 如果有人感到困惑并认为这是我昨天的问题的重复 那么事实并非如此 那里我问的是如何每天调用一个函数 这里我问的是如何在每天的特定时间调用通知 我正在寻找一种每天早上 7 点重复本地通知的方法 我目前有这个代码设置来
  • REST Datasnap 覆盖 URI 映射

    我用 delphi XE2 中的 REST datasnap 编写了一个小型 REST 服务器 HTTP 方法 POST PUT 等 和 delphi 中定义的函数之间有一个默认映射 这是由 delphi 组件完成的 这个维基条目 http
  • 如何在ARMv8-a上启用Aarch32指令集?

    Raspberry Pi 3 使用具有 ARMv8 A53 内核的 Broadcom SoC https www raspberrypi org magpi raspberry pi 3 specs benchmarks 它还使用基于 De
  • 如何启动声纳库?

    为了我的学习 我需要在 ubuntu 服务器上安装 sonarqube 我按照本教程安装了它 http www naturalborncoder com methodology 2015 05 27 sonarqube on ubuntu
  • 如何减少WorkManager中Periodic WorkManager的时间

    In PeriodicTimeRequest最短周期时间为 15 分钟 我想将其从 15 分钟减少到 15 分钟以内 我该怎么做 我们有一个技巧可以减少 15 分钟的定期运行时间 但您不能使用PeriodicWorkRequest 创建具有
  • 在散点图中为每个类别绘制不同的聚类标记

    我有一个散点图 其中绘制了 14 个簇 但每 2 个簇属于同一类 它们都使用相同的标记 每 50 行是一个簇 每 100 行是同一类的两个簇 我想要做的是更改每 2 个簇或 100 行的标记 数据框链接 http www mediafire
  • 如何让文字逆时针方向书写

    如何使文字逆时针书写 function drawTextAlongArc context str centerX centerY radius angle context save context translate centerX cen
  • 在JavaFX中后台执行任务

    我想在 TilePane 中加载最多九个面板 对于每个窗格 我必须首先运行内容计算 大约 300 毫秒 然后必须构建面板 大约 500 毫秒 我想要的是 有九个 ProgressIndicators 在计算后与每个面板进行交换 我尝试过Pl
  • 未找到 GLIBCXX_3.4.15、GLIBC_2.15 和 GLIBC_2.14 - Centos 6.5

    我正在尝试运行一个应用程序 但我得到 usr lib64 libstdc so 6 VERSION GLIBCXX 3 4 15 not found lib64 libc so 6 VERSION GLIBC 2 15 not found
  • 是否可以从 Realm 迁移到 Sqlite?

    由于某些原因 主要是 apk 大小较大 即使有 ABI 分割 我需要完全删除 Realm 并使用 Sqlite 而不会丢失数据 我找不到办法 看来应用程序必须继续使用 Realm 否则用户将完全丢失数据 任何想法将不胜感激 我认为我不完全理
  • Android 在平板电脑上解析错误,但在模拟器上却没有

    我有这个例外 org xml saxParseException 意外的标记 位置 TEXT 1 2 但只有在平板电脑上运行我的 apk 时才会出现这种情况 在 Android 模拟器上解析相同的数据永远不会导致此异常 并且可以 100 工
  • 有没有办法在 WIX 安装程序中创建符号链接?

    我需要为特定文件夹创建符号链接 该文件夹是由 WIX 安装程序创建的 有没有办法从 WIX 安装程序创建符号链接 我读过关于mklink 但我不知道如何在 WIX v3 中使用它 您可以使用自定义操作来运行 mklink InstallFi
  • 如何使用 Graph API 将新评论发布到社交评论框中?

    我有 Facebook 社交评论框 我如何通过图形 API 向其发表评论 我可以给你这个问题一半的答案 但我自己仍然非常需要另一半 您可以通过查找社交评论框中的现有评论来回复该评论后出价 为此 您可以使用 FQL 例如 https api
  • 猪中的正则表达式匹配

    使用 apache pig 和文本 hahahah my brother just didnt do anything wrong He cheated on a test no way 我试图匹配 我哥哥只是没有做错任何事 理想情况下 我
  • 如何在实体框架中使用字符串属性作为主键

    我是 EF 的新手 尝试通过 ETF6 0 中的代码优先方法完成我的第一步 但现在我遇到了问题 我有一处房产 Key public string FooId get set 这是我的模型的主键 但如果我运行 PM gt 更新数据库 在包管理
  • 如何读取ANSI编码和非英文字母的文本文件?

    我有一个包含非英语字符的文件 并使用非英语代码页以 ANSI 编码保存 如何在 C 中读取该文件并正确查看文件内容 不工作 StreamReader sr new StreamReader C APPLICATIONS xml Encodi
  • 无法从商店读取密钥 AndroidDebugKey

    突然间 没有任何明显的原因 我收到了与我的 android 调试密钥库相关的构建错误 一切正常 我更改了一些java代码和minsdk版本 然后下次我打开它时 它尖叫着以下错误 com android ide common signing
  • JAX-RS @HeaderParam 与列表,仅填充一个逗号分隔的元素

    这是一个 JAX RS 特定问题 根据 HeaderParam docs https docs oracle com javaee 7 api javax ws rs HeaderParam html https docs oracle c
  • 使用 IdentityServer 承载的 SignalR 将不会从 Hub 接收任何 JWTBearerEvents

    我们有一个 api net core 2 2 它使用IdentityServerAuthenticationDefaults AuthenticationScheme对于所有工作正常的控制器 我们现在决定添加 SignalR Hub 以提供
  • Spring CrudRepository 查询子元素?

    我有如下的 couchbase 文件 contentTimestamp 1470216079085 version 12 content text ABC params TYPE TEXT readers u id 1 0 u id 2 0