Servus zusammen,
ich habe ein paar hibernate fragen.
ich hab die 2 klassen gemacht
Code:
@Entity@Table(name = "EVENT")
public class Event {
private List<Person> personen;
@ManyToMany(mappedBy = "events")
public List<Person> getPersonen() { return personen; }
public void setPersonen(List<Person> personen)
{ this.personen = personen; }
Entity@Table(name="PERSON")
public class Person {
private List<Event> events = new ArrayList<Event>();
@ManyToMany(cascade={CascadeType.PERSIST, CascadeType.MERGE}) @JoinTable( name="PERSON_EVENT",
joinColumns = @JoinColumn( name="person_id"),
inverseJoinColumns = @JoinColumn( name="event_id"))
@OrderBy("title desc")
public List<Event> getEvents()
{ return events; }
public void setEvents(List<Event> events) { this.events = events; }
1. für was genau brauch ich das mappedBy???
2.
Code:
private void addEventToPerson(Long personId, Long eventId) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction();
Person aPerson = (Person) session.load(Person.class, personId);
Event anEvent = (Event) session.load(Event.class, eventId);
anEvent.getPersonen().add(aPerson);
session.getTransaction().commit();
session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction();
Event event = (Event) session.load(Event.class, eventId); System.out.println(event.getPersonen().size()); }
warum kommt hier 0 raus und nicht 1 ?????
Ich füge dem Event doch eine Person hinzu und commit es
3. wenn ich in dem hibernate.cfg.xml,das hier einfüge...
Code:
<property name="hbm2ddl.auto">create</property>
sollte er doch mit die DB neu anlegen und die alten einträge raus machen oder???macht er nicht seit ich annotaion benutze, davor mit hbm.xml files hat das geklappt... Weiß jemand warum das nicht klappt bzw. was ich falsch gemacht habe???
4. wie sag ich hibernate was für ein schema es angelegen soll... also den schema namen
Danke schon mal im vorraus für rure tips...