首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

默许实体映射

2012-09-14 
默认实体映射一个类标注了@Entity,该类就成为了一个可持久化的类。如果不标注任何注释,这个类的属性和方法

默认实体映射
一个类标注了@Entity,该类就成为了一个可持久化的类。如果不标注任何注释,这个类的属性和方法将自动映射为数据库中默认的表和字段。
例如,以下这个实体类的代码。
@Entity
public class ContactEO implements java.io.Serializable {

         public ContactEO() {
         }

         private Integer id;

         public Integer getId() {
                   return id;
         }

         public void setId(Integer id) {
                   this.id = id;
         }

         private String name;

         public String getName() {
                   return name;
         }

         public void setName(String name) {
                   this.name = name;
         }
}
该实体默认对应的数据库中的表名为“contacteo”,属性id默认映射为表中的字段“id”,属性name默认映射为表中的字段“name”,默认映射的创建表的SQL脚本如下所示。
CREATE TABLE  contacteo (
  id int(20) NOT NULL,
  name varchar(50) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
若此时,换成同样的表结构,只是表明和字段名不一样,表的SQL脚本改为:
CREATE TABLE  contact (
  contact_id int(20) NOT NULL,
  contact_name varchar(50) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
则实体的代码将修改为:
@Entity
@Table(name=”contact”)
public class ContactEO implements java.io.Serializable {
         ……
private Integer id;

         @Column(name=”contact_id”)
         public Integer getId() {
                   return id;
         }
……

         private String name;

         @Column(name=”contact_name”)
         public String getName() {
                   return name;
         }
……
}
@Table注释可以定义所映射表的具体配置,@Column注释可以定义所映射的字段配置。实体的映射虽然有默认的映射,大多数情况下,要根据数据库表结构进行自定义的配置。接下来,就学习一下如何具体设置映射。




原文地址:http://blog.csdn.net/ejb_jpa/article/details/2421218

热点排行