То, что вы описываете, является базовым OneToMany
отношением между Hotel
и Services
, и отображение будет выглядеть так (я сопоставлю его как двунаправленную ассоциацию, используя аннотации):
@Entity
public class Hotel {
@Id @GeneratedValue
private Long id;
@OneToMany(cascade=ALL, mappedBy="hotel")
Set<Service> services = new HashSet<Service>();
// other attributes, getters, setters
// method to manage the bidirectional association
public void addToServices(Service service) {
this.services.add(service);
service.setHotel(this);
}
@Entity
public class Service {
@Id @GeneratedValue
private Long id;
@ManyToOne
private Hotel hotel;
// getters, setters, equals, hashCode
}
А вот фрагмент, демонстрирующий, как это использовать:
SessionFactory sf = HibernateUtil.getSessionFactory(); // this is a custom utility class
Session session = sf.openSession();
session.beginTransaction();
Hotel hotel = new Hotel();
Service s1 = new Service();
Service s2 = new Service();
hotel.addToServices(s1);
hotel.addToServices(s2);
session.persist(hotel);
session.getTransaction().commit();
session.close();
Чтобы пойти дальше (потому что я не буду объяснять все в этом ответе), взгляните на: