我在mongo存储库中编写自定义查询,如下所示:
rollback
但是当我试图通过id找到AuthenticationToken时,它无法正常工作。
public interface AuthenticationTokenRepository extends MongoRepository<AuthenticationToken, String>
{
AuthenticationToken save(AuthenticationToken token);
AuthenticationToken findByToken(String token);
@Query("{'user.username' : ?0}")
AuthenticationToken findByUserId(String username);
}
我在身份验证表中的数据如下:
@Query("{'user._id' : ?0}")
AuthenticationToken findByUserId(String userId);
我想在userId的基础上获取数据。任何人都可以帮助我。
答案 0 :(得分:0)
我尝试了同样的例子。试试这个示例代码。它对我有用。
@Query("{user._id:?0}")
AuthenticationToken findByUser(String userId);
答案 1 :(得分:0)
在某些版本的Spring中,您必须使用 ObjectId 类而不是 String 。
所以你可以试试这样的东西
@Query("{'user._id' : ?0}")
AuthenticationToken findByUserId(ObjectId objectId);
如果您想在代码中使用此查询,它将看起来像这样
String userId = "someUserId";
repository.findByUserId(new ObjectId(userId));