新年快乐:)春季初始化DataJPA
我有一个使用Hibernate和DataJPA的Spring MVC项目。
@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我的意思是类字段“user”和“restaurant”:) – Nicolazz92
如何查询包含'user'和'restaurant'字段的实体?你的* repository *代码在哪里? – djxak