映射Java对象

有两种方式告诉Hibernate 如何加载和存储持久类对象,第一种方式是使用Hibernate 映射文件,另一种方式是使用Java注释。

使用映射文件

  1. 简单的为持久类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>
    
  2. 将这个Event.hbm.xml文件放到部署文件夹的目录src下,并且保证正确的包名。(例如,$myApp/WEB-INF/src/event/Event.hbm.xml)

使用Java注释

使用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;
 
   }
 
}
  1. @Entity 声明这个类为一个持久对象

  2. @Table(name = "EVENTS") 注释表示这个实体是和数据库的EVENTS 表映射的。

  3. @Column 元素备用与映射实体属性和数据库表的字段。

  4. @Id 元素定义了映射主键字段的属性。