В моем проекте я использую Spring Data JPA и расширяю интерфейс JpaRepository для своего класса извлечения данных.
OrganizationMaster class:
@Entity
@Table(name="organization_master")
public class OrganizationMaster {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="organization_id")
private int organizationId;
@OneToMany(mappedBy="organizationMaster")
private List<CompanyMaster> companyMasters;
}
CompanyMaster Class:
Entity
@Table(name="company_master")
public class CompanyMaster {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="company_id")
private int companyId;
@ManyToOne
@JoinColumn(name="organization_id")
private OrganizationMaster organizationMaster;
}
Мой контроллер
@RequestMapping(value = "/GetOrganization", method = RequestMethod.GET)
public
@ResponseBody
List<OrganizationMaster> getOrganization(){
return organizationService.getOrganization();
}
ОрганизацияСервис:
public interface OrganizationService {
List<OrganizationMaster> getOrganization();
}
OrganizationServiceImpl:
@Service
public class OrganizationServiceImpl implements OrganizationService{
@Autowired
private OrganizationDao organizationDao;
@Override
public List<OrganizationMaster> getOrganization() {
return organizationDao.findAll();
}
}
Интерфейс OrganizationDao:
public interface OrganizationDao extends JpaRepository<OrganizationMaster,Long> {
}
Мой выходной ответ: [{"organizationId": 5, "companyMasters": [{{companyId ": 29}, {" companyId ": 30}]}]
Но мне нужно [{"organizationId": 5}]
Когда я пытаюсь получить данные из основной записи организации, используя метод findall () , он также извлекает данные из основной записи компании на основе отношения.Как я могу добиться ленивого извлечения ( получить данные только от хозяина организации ), используя данные весны JpaRepository