Я занимаюсь разработкой библиотеки ORM, похожей на Hibernate. Теперь я застрял в отношениях OneToMany. Я хотел бы знать, как автоматически получать данные из базы данных при вызове getter
стороны one и как Hibernate делает это под капотом.
Многие стороны
public class Film {
private int id;
private String name;
@JoinColumn(name="producer_id")
private Producer producer;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Producer getProducer() {
return producer;
}
public void setProducer(Producer producer) {
this.producer = producer;
}
}
Одна сторона
public class Producer {
@Id
private int id;
private String name;
@OneToMany(mappedBy="producer")
private Set<Film> films;
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
// When called, it executes: SELECT ... FROM Film where producer_id = ?
public Set<Film> getFilms() {
return films;
}
}
Другими словами, я хочу заполнить films
внутри Producer
только когда getFilms()
вызывается.