Spring Data:获取名称为

时间:2015-08-12 11:50:55

标签: spring spring-data spring-data-jpa

让我们说

@Entity
public class Hospital {
    ...

    @ManyToMany
    private List<Doctor> doctors;
    ...
}

我如何获得特定医院的医生名单?我试过了

public interface HospitalRepository extends Repository<Hospital, Long> {
    List<Doctor> findDoctorsById(Long hospitalId);
}

但令人惊讶的是,它返回医院列表!有什么想法吗?

1 个答案:

答案 0 :(得分:2)

你应该可以使用:

Hospital h = hospitalRepository.findOne(Long id);
h.getDoctors():

或者,如果医院ID不是主键:

Hospital findByHospitalId(Long hospitalId);

或者如果您想直接返回Doctor实例,请将查询放入Doctor存储库(这需要Doctor实体中的Hospital属性):

public interface DoctorRepository extends Repository<Doctor, Long> {
    List<Doctor> findByHospitalId(Long hospitalId);
}