У меня есть таблица в которой уже есть юзер, но у него нет машин, я хочу взять этого юзера из таблицы и добавить ему машину, после обновить данные у юзера в таблице и давить в таблицу машин машину(юзера из таблицы он достает успешно)
вот код ошибки :
вот main :
public static void main(String[] args) {
UserService userService = new UserService();
List<User> users = userService.findAllUsers();
User user = users.get(0);
System.out.println(user);
Auto auto = new Auto("Bugatti", "Black");
user.addAuto(auto); //вылетает тут
userService.updateUser(user);
}
вот юзер
@Entity
@Table (name = "f_users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int user_id;
@Column(name = "user_name")
private String name;
@Column(name = "user_age")
private int age;
//mappedBy --> field in class Auto
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Auto> autos;
public void addAuto(Auto auto) {
auto.setUser(this);
autos.add(auto);
}
//......
вот авто :
@Entity
@Table(name = "f_autos")
public class Auto {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int auto_id;
@Column(name = "auto_model")
private String model;
@Column(name = "auto_color")
private String color;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "a_user_id") //a_user_id is foreign key
private User user;
public void setUser(User user) {
this.user = user;
}
//......
вот если необходимо то, как происходит апдейт
@Override
public void update(User user){
Session session = HibernateSessionFactoryUtil.getSessionFactory().openSession();
Transaction tx1 = session.beginTransaction();
session.update(user);
tx1.commit();
session.close();
}