Допустим, у меня есть:
-----------
| City |
-----------
| - id |
| - name |
-----------
(1)
|
|
|
(*)
-----------
| Street |
-----------
| - id |
| - name |
-----------
(1)
|
|
|
(*)
-----------
| House |
-----------
| - id |
| - num |
-----------
Итак:
@Entity
public class City {
@Id
@GeneratedValue
private Long id;
private String name;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "street", cascade = CascadeType.ALL)
private List<Street> streets;
}
@Entity
public class Street {
@Id
@GeneratedValue
private Long id;
private String name;
@ManyToOne(fetch = FetchType.LAZY)
private City city;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "house", cascade = CascadeType.ALL)
private List<House> houses;
}
@Entity
public class House {
@Id
@GeneratedValue
private Long id;
private int num;
@ManyToOne(fetch = FetchType.LAZY)
private Street street;
}
Вот вопрос: Я хочу получить название города дома безвыбирая город и сохраняйте ленивую загрузку . Есть ли волшебный декоратор, чтобы «охотно» загрузить удаленную зависимость? Как
@Entity
public class House {
@Id
@GeneratedValue
private Long id;
private int num;
@ManyToOne(fetch = FetchType.LAZY)
private Street street;
@Magic(from this.street.city.name ?) // <------- HERE
private String houseName;
}