我有一个Spring应用程序。登录后,我调用getUserByEmail()方法。
我只需要用户和角色数据。根据角色,我将显示不同的视图,每个视图具有不同的数据并需要User的不同子实体。
看起来我必须使用不同的子实体调用getUserByEmail()。
这是涉及实体的部分代码:
我只需要用户和角色数据。根据角色,我将显示不同的视图,每个视图具有不同的数据并需要User的不同子实体。
看起来我必须使用不同的子实体调用getUserByEmail()。
这是涉及实体的部分代码:
EntityGraph(value = "withAddresses", type = EntityGraphType.FETCH)
public class User{
public firstName;
public lastName;
@OneToMany(fetch = FetchType.LAZY)
public List<Address> addresses
@OneToMany(fetch = FetchType.LAZY)
public List<Order> orders;
}
public userRepository extend jPaRepository(User.class,Long){
@EntityGraph(name="withAdresses")
getUserByEmail(String email)
/* if possible */
@EntityGraph(name="withOrder")
getUserByEmail(String email)
}
- 有没有可能使用相同的查询名称来拥有两个用户对象的图表? 因为我需要不同的数据来展示不同的视图。
- 此外,当切换到新视图(在Spring控制器中进行新调用)时,之前视图的事务已经关闭了,我必须进行新的调用才能获得与用户不同的数据。除非我遗漏了什么,否则我不明白如果您不在同一个事务服务方法中,如何使用fetch lazy会有所帮助。
例如,如果我需要在“orderWiew.html”中获取订单数据,则延迟加载订单将无法帮助我,我必须对相同的用户数据和其他订单数据进行另一个完整的调用。