2016-10-30 18 views
2

ユーザーの保存を取得しようとしています。 Iveは多くの投稿を見ましたが、私が試したことはすべて動作しません。休止状態の列 'user_id'はnullにはできません。

私のユーザークラス:

@Entity 
@Table(name = "USER") 
@Setter @Getter 
public class User { 

@Id 
@GeneratedValue(strategy=GenerationType.IDENTITY) 
@Column(name = "user_id", nullable = false) 
private Long id; 

private String username; 

private String password; 

private boolean active; 

@Column(name = "session_id") 
private String sessionId; 

@OneToMany(cascade = CascadeType.ALL) 
@JoinColumn(name = "user_id") 
@LazyCollection(value = LazyCollectionOption.FALSE) 
private List<Work> workList; 
} 

マイワーククラス:

@Entity 
@Getter 
@Setter 
@Table(name = "WORK") 
public class Work { 

@Id 
@Column(name = "work_id") 
@GeneratedValue(strategy=GenerationType.IDENTITY) 
private Long id; 

private String adress; 

private Date startDate; 

private Date endDate; 

@OneToOne 
@Cascade(CascadeType.ALL) 
@JoinColumn(name = "user_id") 
private User user; 
} 

マイUserDao方法:

@Override 
public void saveOrUpdate(User user) { 
    Session session = HibernateUtil.getSession(); 
    Transaction transaction = session.beginTransaction(); 
    try { 
     session.saveOrUpdate(user); 
     transaction.commit(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     transaction.rollback(); 
    } finally { 
     HibernateUtil.closeSession(); 
    } 

私はそれが正常に動作します事を追加する場合:

user.getWorkList().add(work); 

しかし、私は私に語った例外を取得したユーザーのすべてのレコードを削除するには、リストをクリア:Column 'user_id' cannot be null そして、これは私がするsaveOrUpdateを呼び出す前に、コードに何をすべきかです:user.getWorkList().clear();

私は何をしないのですか? ?

答えて