happy new year :)Lazy инициализация весной DataJPA
У меня есть проект Spring MVC с использованием Hibernate и DataJPA.
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "user_id", nullable = false)
private User user;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "restaurant_id", nullable = false)
@NotNull
private Restaurant restaurant;
Как вы можете видеть, вот два поля с нетерпением. Я хочу сделать и ленивым. Мне нужно, чтобы пользователь @NamedEntityGraph
аннотации Ася сделала здесь:
@NamedQueries({
@NamedQuery(name = Restaurant.GET_BY_ID, query = "SELECT r FROM Restaurant r WHERE r.id=?1"),
})
@Entity
@NamedEntityGraph(name = Restaurant.GRAPH_WITH_MENU_HISTORY, attributeNodes = {@NamedAttributeNode("menuHistory")})
@Table(name = "restaurants")
public class Restaurant extends NamedEntity {
@OneToMany(cascade = CascadeType.REMOVE, fetch = FetchType.LAZY, mappedBy = "restaurant")
@OrderBy(value = "date DESC")
private List<Dish> menuHistory;
public static final String GRAPH_WITH_MENU_HISTORY = "Restaurant.withMenuHistory";
Я хочу знать, если я напишу
@NamedEntityGraph(name = "G_NAME", attributeNodes = {@NamedAttributeNode("user", "restaurant")})
и если я буду просить один из них, будет ли вторая нагрузка в любом случае или он будет загружаться только по его просьбе? Может быть, мне нужно, чтобы у пользователя были два графика?
«если я попрошу один из них» - один из них? «будет вторая загрузка в любом случае» - что будет загружаться в любом случае? «или он будет загружать только по его просьбе» - кому? :) Сделайте вопрос более явным. – djxak
@djxak Я имею в виду классы полей «пользователь» и «ресторан» :) – Nicolazz92
Как вы могли бы запросить объект, состоящий из полей 'user' и' restaurant'? Где ваш * код репозитория *? – djxak