"N + 1选择问题"通常被称为对象关系映射(ORM)讨论中的一个问题,我理解它必须为对象中看起来很简单的事情做出大量的数据库查询.世界.
有没有人对这个问题有更详细的解释?
你好专家@ stackOverflow,
我们正在使用Spring Data REST MongoDB.
是否有可能急于加载子对象,而不是使用@DBRef注释的超链接?请参阅Process.templates下面的属性.
这是我们的模型:
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.ArrayList;
import java.util.List;
@Document(collection = "process")
public class Process {
@Id
private String id;
private String name;
@DBRef ///////// ------> This is the corresponding attribute <------
private List<MergeTemplate> templates = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
这是我们的存储库:
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
@RepositoryRestResource(collectionResourceRel = "process", path = "process")
public interface ProcessRepository extends MongoRepository<Process, String> {
}
Run Code Online (Sandbox Code Playgroud)
FindAll API带来了子对象的链接
http://localhost:8080/data/process
Run Code Online (Sandbox Code Playgroud)
带来以下JSON.
{
"_embedded" : {
"process" : [ { …Run Code Online (Sandbox Code Playgroud)