If i remember well inverse tells Hibernate that it shouldn't maintain that side of the relationship, you'll have to do that yourself in your code.
When adding a Person to an Event you should also add the Event to the Person. You must give the Event class an
addPerson method like this:
Code:
public class Event
{
...
public void addPerson(Person person)
{
this.persons.add(person);
person.getEvents().add(this);
}
// The same is true for removing a person from the relationship.
public void removePerson(Person person)
{
this.persons.remove(person);
person.getEvents().remove(this);
}
...
}
Q1: Your conclusion isn't fully correct. From Hibernate's point of view the inverse side isn't involved in a relationship. This will not only be true for inserts but for example also for deletes or for removing the relationship.
Q2: It can lead to less SQL-statements on the database so it's better for performance.
Q3: I think so.
Q4: He should always call the Event's addPerson method described above.
If anyone doesn't agree please correct me, it's been a while since i took a look at this stuff.