我有网域:
class Company {
List<Job> jobs;
}
有没有一种方法可以从集合中返回嵌套对象,例如:
@Repository
public interface CompanyRepository extends MongoRepository<Company, String>{
Job findByJobId(String jobId);
}
我必须对您的Job
模型的结构做出一些假设,但要假设这样的事情:
public class Job {
private String id;
// other attributes and methods
}
...并且假设此模型已嵌入到您的Company
模型中,并且未在另一个集合中表示,则您将必须通过MongoTemplate
route进行自定义实现。Spring Data查询API不能弄清楚如何获得所需的内容,因此您必须自己实现该方法。
@Repository
public interface CompanyRepository extends CompanyOperations, MongoRepository<Company, String>{
}
public interface CompanyOperations {
Job findByJobId(String jobId);
}
public class CompanyRepositoryImpl implements CompanyOperations {
@Autowired private MongoTemplate mongoTemplate;
@Override
public Job findByJobId(String jobId){
Company company = mongoTemplate.findOne(new Query(Criteria.where("jobs.id").is(jobId)), Company.class);
return company.getJobById(jobId); //implement this method in `Company` and save yourself some trouble.
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句