我正在嘗試使用休息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,我會收到所有的用戶職位。
如何開發這種應用程序?我應該從用戶實體中刪除關係,並在需要時在用戶的數據庫文章中進行搜索?或者也許有另一種解決方案呢?