Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java findAll UUID MongoRepository_Java_Spring_Mongodb_Spring Mongo_Spring Mongodb - Fatal编程技术网

Java findAll UUID MongoRepository

Java findAll UUID MongoRepository,java,spring,mongodb,spring-mongo,spring-mongodb,Java,Spring,Mongodb,Spring Mongo,Spring Mongodb,我正在尝试使用mongo spring boot获得FindallByuid,但运气不好。 我所拥有的: public interface CarMatchRepository extends MongoRepository<CarMatchEntity, String> { List<CarMatchEntity> findAllByCarID(Iterable<UUID> ids); CarMatchEntity findByCarID(U

我正在尝试使用mongo spring boot获得FindallByuid,但运气不好。 我所拥有的:

public interface CarMatchRepository extends MongoRepository<CarMatchEntity, String> {
    List<CarMatchEntity> findAllByCarID(Iterable<UUID> ids);
    CarMatchEntity findByCarID(UUID carID);
}
公共接口存储库扩展了MongoRepository{
列出FindAllByCard(可编辑ID);
卡马查德(UUID carID);
}
函数调用:

public void addCarsToCollection(String id, List<UUID> carId) {
   List<CarMatchEntity> entities = carMatchRepository.findAllByCarID(carId); <--- empty
}
public void addCarsToCollection(字符串id,列表id){
List entities=carMatchRepository.findallbycand(carId);使用

列出findAllByCarIDIn(Iterable id);
而不是

List<CarMatchEntity> findAllByCarID(Iterable<UUID> ids);
列出findallbycard(可编辑的ID);
更新: 您是否尝试显式声明JPQL查询而不是依赖Spring数据查询生成机制

@Query("select e from CarMatchEntity e where e.carID in (:ids)")
List<CarMatchEntity> findAllByCarID(@Param("ids") Iterable<UUID> ids);
@Query(“从carmatch实体e中选择e,其中e.carID位于(:id)”)
列出FindAllByCard(@Param(“ids”)可编辑ID);
更新2:
我尝试的另一个解决方案是将
findAllByCarIDIn
方法中的参数
ids
声明为
Collection
,而不是
Iterable

尝试使用基于JSON的查询和SpEL表达式

@Query("{carID: { $in: ?0 } })")
List<CarMatchEntity> findAllByCarIds(List<UUID> ids);
@Query({carID:{$in:?0}})”
列出findAllByCarIds(列表ID);

你能粘贴
CarMatchEntity
的字段吗?当然!现在我得到:
init方法调用失败;嵌套异常是com.mongodb.util.JSONParseException:从CarMatchEntity e中选择e,其中e.carID在(:id)中
。感谢您迄今为止的帮助!我是否应该使用导入org.springframework.data.mongodb.repository.Query;
?@Leonardo忽略我的“更新1”,我输入了Mongo和JPQL格式。正确的格式在这里。您可以直接在Mongo集合中搜索UUID吗?@Leonardo您的MongoDB中的carID是什么类型的?是的,我可以!我有
CarMatchEntity FindBycard(UUID carID);
返回结果。二进制、旧UUID或BinData(3,Base64)。感谢您的帮助
@Query("select e from CarMatchEntity e where e.carID in (:ids)")
List<CarMatchEntity> findAllByCarID(@Param("ids") Iterable<UUID> ids);
@Query("{carID: { $in: ?0 } })")
List<CarMatchEntity> findAllByCarIds(List<UUID> ids);