我正在尝试使用休息API和休眠来完成我的第一个JEE应用程序。我不知道如何以适当的方式做到这一点。我的意思是,我有实体用户Jax-RS-java rest api和hibernate
@Entity
@XmlRootElement
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String username;
private String password;
private String email;
private LocalDateTime lastDateOfLogin;
@OneToMany(fetch=FetchType.LAZY)
private List<Post> posts = new ArrayList<>();
@OneToMany(fetch=FetchType.LAZY)
private List<Comment> comments = new ArrayList<>();
@OneToMany(fetch=FetchType.LAZY)
private List<Like> likes = new ArrayList<>();
@OneToMany(fetch=FetchType.LAZY)
private List<User> followers = new ArrayList<>();
@OneToMany(fetch=FetchType.LAZY)
private List<User> following = new ArrayList<>();
,我有UserResource方法来获取一个用户
@GET
@Path("{id}")
public User getUser(@PathParam("id") long id)
{
return userService.getOne(id);
}
现在我的问题是,当我试图让一个用户我得到的异常组织.hibernate.LazyInitializationException - 当然,我知道为什么,但问题是如何做到这一点,以适当的方式。在这个@GET我不需要这个OneToMany集合,因为当我想要E.g用户职位,我会打电话给用户/ 1 /职位的URL,我会收到所有的用户职位。
如何开发这种应用程序?我应该从用户实体中删除关系,并在需要时在用户的数据库文章中进行搜索?或者也许有另一种解决方案呢?