spring-boot - SpringData MongoDb Repository FindObject List Field by List
问题描述
我正在尝试根据其列出的值查找特定实体。但是以下查询不起作用,有人知道我做错了什么吗?下面的例子?
注意:使用的数据库是 mongodb 数据库和模型如下例所示:
Entity1{
name: x
options:[
{
id: 1
key: value1,
someOtherKey: someOtherValues
},
{
id: 2
key: value2,
someOtherKey: someOtherValues2
}
]
}
Entity2{
name: x
options:[
{
id: 4
key: value4,
someOtherKey: someOtherValues4
},
{
id: 5
key: value5,
someOtherKey: someOtherValues5
}
]
}
模型
public class Entity {
private String name;
@DBRef
private List<Option> options;
}
我想得到Entity2,我的参数是,列表:
options:[
{
id: 4
key: value4,
someOtherKey: someOtherValues4
},
{
id: 5
key: value5,
someOtherKey: someOtherValues5
}
]
我的存储库:
List<Entity> findByValues(List<Option> options);
解决方案
如果您有一个list<Value>
Json Array 中所有值的列表values
,例如来自您的 Json Array 称为values
values:[
{key1: value1}
{key3: value2}
]
您可以获得包含所有值value1, value2, ...
的 List ,假设它是 a List<Value>
,然后在您的存储库中,您可以使用类似
1)使用Spring数据规范
List<Value> findByValuesIn(List<Value> values);
2) 使用原生查询
@Query("SELECT e FROM Entity e WHERE e.values IN (:values)")
List<Employee> findByValues(@Param("values") List<Value> values);
推荐阅读
- python - httplib2 不会返回实际页面
- python - 训练后如何保存标记器?
- excel - 使用公式删除 Excel 中连字符名称中连字符后的所有内容
- javascript - 查找数组的重复项并将其替换为其编号
- matrix - Android SurfaceView Mirror 相机
- javascript - 以一种优雅的方式结合异步和同步功能
- python - “cdqa”的问题:无法从“joblib._memmapping_reducer”导入名称“TemporaryResourcesManager”
- android - 在 PagingDataAdapter JetPack 分页 Android 中对已加载的数据(PagingData)应用过滤器
- python - keras Transformer 模型 EncoderLayer
- excel - 您是否曾经尝试过使用共享 excel 的 Apache POI?