Как я могу установить сопоставление с аннотациями, чтобы получать меньше запросов, чем сейчас?Мне нужно только чтение данных.
...
private Long id;
private String firstName;
private String lastName;
private Address address;
private Set<Office> offices = new HashSet<Office>();
private Map<Office, Position> positions = new HashMap<Office, Position>();
private Office office;
...
@OneToOne
@JoinColumn(name = "ADDRESS_ID")
public Address getAddress() {
return address;
}
@ManyToMany(fetch = FetchType.EAGER, targetEntity = Office.class)
@JoinTable(name = "H_OFFICE_EMPLOYEE",
joinColumns = {@JoinColumn(name = "EMPLOYEE_ID")},
inverseJoinColumns = {@JoinColumn(name = "OFFICE_ID")})
public Set getOffices() {
return offices;
}
@ManyToMany(targetEntity = Position.class)
@JoinTable(name = "H_OFFICE_EMPLOYEE",
joinColumns = {@JoinColumn(name = "EMPLOYEE_ID")},
inverseJoinColumns = {@JoinColumn(name = "POSITION_ID")})
@MapKeyManyToMany(joinColumns = @JoinColumn(name = "OFFICE_ID"), targetEntity = Office.class)
public Map getPositions() {
return positions;
}
...
Я получаю следующие запросы в консоли, когда получаю 1 сотрудника (и его адрес, город, страну, компании, в которых он работает, количество сотрудников в каждом офисе (где он работает)):
Hibernate: select employee0_.EMPLOYEE_ID as...
Hibernate: select address0_.ADDRESS_ID as...
Hibernate: select offices0_.EMPLOYEE_ID as...
Hibernate: select positions0_.EMPLOYEE_ID as...
Hibernate: select employees0_.OFFICE_ID as...
Hibernate: select offices0_.EMPLOYEE_ID as...
Hibernate: select employees0_.OFFICE_ID as...
Hibernate: select positions0_.EMPLOYEE_ID as...
Что я должен изменить в своем отображении, чтобы получать меньше запросов?