有两种方式告诉Hibernate 如何加载和存储持久类对象,第一种方式是使用Hibernate 映射文件,另一种方式是使用Java注释。
简单的为持久类Event.java创建一个Event.hbm.xml文件。
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="events.Event" table="EVENTS">
<id name="id" column="EVENT_ID">
<generator class="native"/>
</id>
<property name="date" type="timestamp" column="EVENT_DATE"/>
<property name="title"/>
</class>
</hibernate-mapping>
Event.hbm.xml文件放到部署文件夹的目录src下,并且保证正确的包名。(例如,$myApp/WEB-INF/src/event/Event.hbm.xml)使用Java注释的好处是不用创建额外的Hibernate 配置文件。为你的Java类简单的添加Java注释来告诉如何Hibernate 如何关联。
package events;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="EVENTS")
public class Event {
private Long id;
private String title;
private Date date;
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
@Column(name = "EVENT_ID")
public Long getId() {
return id;
}
private void setId(Long id) {
this.id = id;
}
@Column(name = "EVENT_DATE")
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
@Entity 声明这个类为一个持久对象
@Table(name = "EVENTS") 注释表示这个实体是和数据库的EVENTS 表映射的。
@Column 元素备用与映射实体属性和数据库表的字段。
@Id 元素定义了映射主键字段的属性。