有两种方式告诉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
元素定义了映射主键字段的属性。