在Objectify中使用first()加载实体时是否需要调用limit(1)?
关于Objectify中first()方法是否需要搭配limit(1)的疑问解答
当你用Objectify的first()方法加载实体时,比如这段代码:
Car car = ofy().load().type(Car.class).filter("vin", "123456789").first().now();
完全不需要额外添加limit(1),也就是下面这段代码里的limit(1)属于冗余操作:
Car car = ofy().load().type(Car.class).filter("vin", "123456789").limit(1).first().now();
因为first()方法本身就会确保只向Datastore查询并返回单个匹配的实体,它内部已经封装了限制返回数量为1的逻辑,和手动调用limit(1)的效果完全一致。不管有没有加limit(1),最终都只会加载一个实体,不会拉取所有匹配查询的结果。
内容的提问来源于stack exchange,提问作者Micro
相关产品推荐
相关产品推荐

