@Entity(name="booking")//实体名,在HQL或CRITERIA中使用
@Table(name="BOOKING")//数据库对应的表
public class Booking extends AdvanceRecordableEntity {
private String topic;
private MeetingRoom meetingRoom;
@Column(name="BOOKING_TOPIC", length=200, nullable=false)
public String getTopic() {
return topic;
}
public void setTopic(String topic) {
this.topic = topic;
}
@ManyToOne(cascade = {CascadeType.ALL})
//一般来说ManyToOne这一端负责维护关联关系,并且CascadeTYPE为ALL,即Booking的CURD操作
//都会对关联的MeetingRoom对象进行数据库操作。例如,新建的Booking对象,关联到一个新建的
//MeetingRoom对象,如果对Booking对象进行save,那么MeetingRoom对象也会被save到数据库
@JoinColumn(name="MEETINGROOM_ID")
//在BOOKING这个表中,用一列MEETINGROOM_ID来记录MEETINGROOM这个表的主键
public MeetingRoom getMeetingRoom() {
return meetingRoom;
}
public void setMeetingRoom(MeetingRoom meetingRoom) {
this.meetingRoom = meetingRoom;
}
}
对于MeetingRoom类来说,要实现双向的关联:
@OneToMany(mappedBy="meetingRoom") //表示bookings这个属性是连到Booking类的meetingRoom属性上
public List<Booking> getBookings() {
return bookings;
}