2017-09-06 13 views
1

私は2つのテーブル、ユーザーと投稿を持っています。また@OneToMany双方向関係が正しく動作しない

@Entity 
@Table(name = "users") 
public class User { 
@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private Long id; 
@Basic 
@NotNull 
@Column(name = "username",nullable = false,unique = true) 
private String username; 
@Basic 
@NotNull 
private String password; 

@OneToOne 
@NotNull 
@JoinColumn(name = "picture_id") 
private Picture profilePicture; 

@ManyToMany 
@JoinTable(name = "followers_users", 
     joinColumns = @JoinColumn(name = "id"), 
     inverseJoinColumns = @JoinColumn(name = "follower_id")) 
private Set<User> followers; 


@ManyToMany(mappedBy = "followers", fetch = FetchType.EAGER) 
private Set<User> following; 

@OneToMany(mappedBy = "user",cascade = CascadeType.PERSIST) 
private Set<Post> posts = new HashSet<>(); 

@OneToMany(mappedBy = "user") 
private Set<Comment> comments; 

...

と::彼らはManyToOne/OneToManyとリンクされている

@Entity 
@Table(name = "posts") 
public class Post { 
@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private Long id; 

@NotNull 
@Basic 
private String caption; 

@NotNull 
@ManyToOne 
@JoinColumn(name = "user_id",referencedColumnName = "id") 
private User user; 

@NotNull 
@ManyToOne 
@JoinColumn(name = "picture_id") 
private Picture picture; 

@OneToMany(mappedBy = "post") 
private Set<Comment> comments; 

...

私は、ユーザーの新しいポストを持続

、user.posts空です。これは私が期待するものではありません。私は、新しい投稿が追加されたときにこれが自動的に更新されると考えています。

答えて

0

私は問題が見つかりました 問題はコントローラクラスでは@Transactional注釈を置くことです。 正しく動作させるにはトランザクションの削除が必要です。

関連する問題