ユーザーの保存を取得しようとしています。 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();
私は何をしないのですか? ?