Event事件表
Person 人员表
Person_Event 人员事件表
PersonEmailAddr邮件地址表
关系图:
事件对人员是多对多的关系,中间表Person_Event只有两个字段(PERSON_ID,EVENT_ID),邮件地址表只对应人员ID,一个人可以多个邮箱
*************** CLASS PERSON ***************
publicclass Person {
private Long id; //ID主键
privateintage; //属性
private String firstname;//属性
private String lastname; //属性
private Set emailAddresses = new HashSet();//与表PersonEmailAddr 对应字段的属性,邮件地址可以多个不同,所以放入Set中而不放入List中
private Set events = new HashSet();//与表Person_Event 对应字段的属性,道理跟上面一样
// Getter and Setter methods
// Defensive, convenience methods .由PERSON端维护关系,inverse=”false”
publicvoid addToEvent(Event event) {
this.getEvents().add(event);
event.getParticipants().add(this);
}
publicvoid removeFromEvent(Event event) {
this.getEvents().remove(event);
event.getParticipants().remove(this);
}
}
*************** CLASS EVENT ***************
publicclass Event {
private Long id; //主键ID
private Date date; //属性
private Set<Person> participants = new HashSet<Person>(); //与表Person_Event 对应字段的属性,道理跟上面一样
private String title; //属性
// Getter and Setter methods
}
******************* PERSON XML ******************
<hibernate-mapping>
<class name="events.Person" table="PERSON"> <!-- class.name指向类class.table指向表-->
<id name="id" column="PERSON_ID"> <!-- id.id指向属性 id.column指向字段-->
<ge