我想计算我的实体“User”中的字段代码的最大值,使用Spring Data,我看到代码如下:
".find({}).sort({"updateTime" : -1}).limit(1)"
但我不知道如何使用@Query
将其集成到我的“存储库”中或另一种等效解决方案,而不是返回所述字段的最大值。 有人能帮助我吗? 谢谢。
答案 0 :(得分:1)
您可以为存储库编写自定义方法。 例如,你有:
public interface UserRepository extends MongoRepository<User, String>, UserRepositoryCustom {
...
}
存储库的其他方法:
public interface UserRepositoryCustom {
User maxUser();
}
然后执行它:
public class UserRepositoryImpl implements UserRepositoryCustom {
@Autowired
private MongoTemplate mongoTemplate;
@Override
public User maxUser() {
final Query query = new Query()
.limit(1)
.with(new Sort(Sort.Direction.DESC, "updateTime"));
return mongoTemplate.findOne(query, User.class)
}
}
答案 1 :(得分:0)
您可以使用spring数据方法的语法,例如:
public User findTopByOrderByUpdateTimeAsc()
可以在此处找到参考:https://www.baeldung.com/jpa-limit-query-results#1first-ortop