私は最初のJEEアプリケーションを休憩APIと休止状態にしています。私は正しい方法でそれをする方法を知らない。私は、エンティティユーザに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<>();
を持っていると私は一人のユーザー
@GET
@Path("{id}")
public User getUser(@PathParam("id") long id)
{
return userService.getOne(id);
}
を取得するためにUserResourceメソッドを持っている今、私の問題は、私は一人のユーザーを取得しようとしているとき、私は例外組織を取得していますということであることを意味します.hibernate.LazyInitializationException - 私はもちろん、なぜ私は知っているが、これを行う方法は適切な方法でそれを取得する方法です。この@GETでは、このOneToManyコレクションは必要ありません。なぜなら、EGのユーザー投稿が必要な場合、私はuser/1/posts URLに電話し、すべてのユーザー投稿を受け取るからです。
この種類のアプリケーションを開発するにはどうすればよいですか?ユーザーエンティティから関係を削除し、必要なときにユーザーのデータベース投稿を検索するだけですか?それとも別の解決策がありますか?