Witam,
mam problem z zapisem danych przy pomocy hibernate, mam zmapowane encje:
@Entity
public class UserDetail {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id_user;
private String name;
@OneToMany(mappedBy="user", cascade=CascadeType.PERSIST)
private Collection<Vehicle> vehicle = new ArrayList();
public int getId_user() {
return id_user;
}
public void setId_user(int id_user) {
this.id_user = id_user;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Collection<Vehicle> getVehicle() {
return vehicle;
}
public void setVehicle(Collection<Vehicle> vehicle) {
this.vehicle = vehicle;
}
}
@Entity
public class Vehicle {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id_vehicle;
private String name;
@ManyToOne
@JoinColumn(name="user_id")
private UserDetail user;
public int getId_vehicle() {
return id_vehicle;
}
public void setId_vehicle(int id_vehicle) {
this.id_vehicle = id_vehicle;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public UserDetail getUser() {
return user;
}
public void setUser(UserDetail user) {
this.user = user;
}
}
następnie w servlecie :
Vehicle vehicle = new Vehicle();
vehicle.setName("Opel");
Vehicle vehicle2 = new Vehicle();
vehicle2.setName("Nissan");
UserDetail userek = new UserDetail();
userek.setName("User Name");
userek.getVehicle().add(vehicle);
userek.getVehicle().add(vehicle2);
Configuration configuration = new Configuration();
ServiceRegistry serviceRegistry;
configuration.configure();
serviceRegistry = new ServiceRegistryBuilder().applySettings(
configuration.getProperties()).buildServiceRegistry();
SessionFactory sessionFactory = configuration
.buildSessionFactory(serviceRegistry);
Session session = sessionFactory.openSession();
session.beginTransaction();
session.persist(userek);
session.getTransaction().commit();
session.close();
zapisują mi się dane z jednym problemem, w tabeli z samochodami, pojazdy nie mają przypisanych kluczy obcych, kolumna ta zostaje pusta