spring-data - JPA Query方法不返回任何内容
问题描述
我目前正在使用自定义 n1ql 查询,但是它是如此简单的查询,我想我可以使用内置的 jpa 查询方法,但是我无法弄清楚关键词,因为我没有得到任何回报.
此代码有效:
@Query("SELECT meta().id as _ID, meta().cas as _CAS, * FROM `my-bucket` mb " +
"WHERE mb.name like $1 OR ANY Parent " +
"IN mb.Parents SATISFIES Parent.name like $1 END")
List<MyObject> searchObjectByName(String name);
然而这不起作用
@N1qlPrimaryIndexed
public interface MyObjectRepository extends CouchbasePagingAndSortingRepository<MyObject, String> {
List<MyObject> findBySecondObjectNameContains(String name);
}
@Data
@Document
public class MyObject{
@Id
private String objectId;
@Field
private SecondObject secondObject;
}
@Data
public class SecondObject {
@Field
private String name;
}
我的测试方法:
@Autowired
private MyObjectRepository myObjectRepository;
@Test
public void testFind() {
List<MyObject> myObjects = myObjectRepository.findBySecondObjectNameContains("my name");
Assert.assertNotNull(myObjects);
}
解决方案
查询看起来是正确的,但可能缺少一些内容:
1)在你的测试中,你确定“我的名字”不应该是“我的名字%”吗?2) 检查您是否有涵盖此查询的主索引或二级索引(通过 Web 控制台运行相同的查询) 3) 您何时插入数据?如果您尚未将 couchbase 配置为强一致性,则您可能一直在读取旧版本的数据
推荐阅读
- ponylang - 为 Pony 数组实现 map 函数
- python - 是否可以提取包含重复值的交集列表?
- sql - 尝试将不可为 NULL 的列的值设置为 NULL
- python - 将多个字典合并为一个
- vue.js - Hot-Module-Replacement (HMR) 在 vue-cli 3 项目中突然停止工作
- sql - SQL - 从错误的名字/姓氏中清除数据库
- python - 如何根据熊猫的时差为用户设置会话
- oracle - 如何将 Grails 与 oracle db 连接起来?
- kotlinx.coroutines - kotlin 协程 - 什么是默认范围?
- r - 从多个 txt 文件创建语料库