日期:2014-05-16 浏览次数:20521 次
hibernate-annotation.jar ejb3-persistence.jar hibernate-commons-annotation.jar丢到项目中,其写Annotation注解比写xml很是方便很多,其极力推从使用Annotation注解. package org.huawei.hibernate; import java.util.Date; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.SequenceGenerator; import javax.persistence.Table; import javax.persistence.TableGenerator; import javax.persistence.Temporal; import javax.persistence.TemporalType; /** * @作者: 何枫 * @日期: 2011-4-2下午11:01:52 * @版本: V 1.0 * @标题: Teacher.java * @包名: org.huawei.hibernate * @描述: TODO(用一句话描述该文件做什么) */ @Entity //@Entity 注解将一个类声明为实体 Bean //@Table(name="_Teacher")======>数据库表别名 public class Teacher { private int id; private String name; private String title; private Date date; private zhicheng zhicheng; //一种可行性的跨数据库平台的数据库主键生成策略.(重点) @TableGenerator( name = "CardPkGen", table = "Teacher_GEN", pkColumnName = "pk_key", pkColumnValue = "pk_value", valueColumnName = "Teacher", allocationSize = 1 ) @Id @GeneratedValue(strategy=GenerationType.TABLE,generator="CardPkGen") //@GeneratedValue(strategy=GenerationType.IDENTITY) /* * @GeneratedValue:定义主键生成策略,这里因为使用的是TableGenerator,所以,主键的生成策略为GenerationType.TABLE,生成主键策略的名称则为前面定义的"CardPkGen”。 * @TableGenerator各属性含义如下: * name:表示该表主键生成策略的名称,这个名字可以自定义,它被引用在@GeneratedValue中设置的"generator"值中 * table:表示表生成策略所持久化的表名,说简单点就是一个管理其它表主键的表,本例中,这个表名为ID_GEN * pkColumnName:表生成器中的列名,用来存放其它表的主键键名,一般来说一个主键键名对应一张其他表要获取主键值对应的key。这个值要与数据库的列对应,比如GEN_NAME对应id_gen中的主键名称 * pkColumnValue:该实体所要访问对应主键生成表的主键的key值 * valueColumnName:表生成器所要对应pkColumnName主键的下一个值,这个值也要和表生成器中的列名对应 * allocationSize:表示每次主键值增加的大小,例如设置成1,则表示每次创建新记录后自动加1,默认为50 */ /* * @GeneratedValue —— 注解声明了主键的生成策略。该注解有如下属性 * strategy 指定生成的策略(JPA定义的),这是一个GenerationType。默认是GenerationType. AUTO * GenerationType.AUTO 主键由程序控制 * GenerationType.TABLE 使用一个特定的数据库表格来保存主键 * GenerationType.IDENTITY 主键由数据库自动生成(主要是自动增长类型)只用于mysql,Sqlserver * GenerationType.SEQUENCE 根据底层数据库的序列来生成主键,条件是数据库支持序列。(这个值要与generator一起使用) * generator 指定生成主键使用的生成器(可能是orcale中的序列)。 */ public int getId() { return id; } public void setId(int id) { this.id = id; } //@Basic加不加都行 //@Column=====>更改表字段名 //不需要的字段不写到数据库用@Temporal //xml是的方式是不写 public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getName() { return name; } public void setName(String name) { this.name = name; } //时间精度注解 //@Temporal(TemporalType.DATE) public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } //Annotation处理枚举leix @Enumerated(EnumType.STRING) //@Enumerated(EnumType.ORDINAL) public zhicheng getZhicheng() { return zhicheng; } public void setZhicheng(zhicheng zhicheng) { this.zhicheng = zhicheng; } }