资源描述:
《Hibernate自动生成实体类注解.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、在过去几年里,Hibernate不断发展,几乎成为Java数据库持久性的事实标准。它非常强大、灵活,而且具备了优异的性能.在本文中,我们将了解如何使用Java 5注释来简化Hibernate代码,并使持久层的编码过程变得更为轻松。ﻫ传统上,Hibernate的配置依赖于外部XML文件:数据库映射被定义为一组XML映射文件,并且在启动时进行加载。 在最近发布的几个Hibernate版本中,出现了一种基于Java5注释的更为巧妙的新方法。借助新的HibernateAnnotation 库,即可一次性地分配所有旧映射文件——一切都会按照您的想法
2、来定义——注释直接嵌入到您的Java类中,并提供一种强大及灵活的方法来声明持久性映射。即利用hibernate注解后,可不用定义持久化类对应的*.hbm.xml文件,直接以注解方式写入在持久化类中来实现.Hibernateannotation使用了ejbJPA的注解,所以,下面安装配置hibernateannotation环境时,需要导入ejb的包。许多网上的资料都是jpahibernateannotation方面的资料。常用的hibernate annotation标签如下:@Entity —-注释声明该类为持久类.
3、将一个Javabean类声明为一个实体的数据库表映射类,最好实现序列化.此时,默认情况下,所有的类属性都为映射到数据表的持久性字段。若在类中,添加另外属性,而非映射来数据库的, 要用下面的Transient来注解.ﻫ@Table(name="promotion_info") --持久性映射的表(表名=”promotion_info).@Table是类一级的注解,定义在@Entity下,为实体bean映射表,目录和schema的名字,默认为实体bean的类名,不带包名。 @Id--注释可以表明哪种属性是该类中的独特标识符(即相当于数据表
4、的主键)。ﻫ@GeneratedValue --定义自动增长的主键的生成策略。ﻫ@Transient -—将忽略这些字段和属性,不用持久化到数据库.适用于,在当前的持久类中,某些属性不是用于映射到数据表,而是用于其它的业务逻辑需要,这时,须将这些属性进行transient的注解。否则系统会因映射不到数据表相应字段而出错.@Temporal(TemporalType.TIMESTAMP)——声明时间格式ﻫ@Enumerated -—声明枚举@Version —-声明添加对乐观锁
5、定的支持@OneToOne -—可以建立实体bean之间的一对一的关联 ﻫ@OneToMany -—可以建立实体bean之间的一对多的关联@ManyToOne -—可以建立实体bean之间的多对一的关联ﻫ@ManyToMany —-可以建立实体bean之间的多对多的关联 @Formula ——一个SQL表达式,这种属性是只读的,不在数据库生成属性(可以使用sum、average、max等)@OrderBy --Many
6、端某个字段排序(List)本文为互联网收集,请勿用作商业用途Hibernate注解详细说明1。@Entity(name="EntityName”)必须,name为可选,对应数据库中一的个表2、@Table(name=”",catalog=””,schema=””)可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息name:可选,表示表的名称。默认地,表名和实体名称一致,只有在不一致的情况下才需要指定表名catalog:可选,表示Catalog名称,默认为Catalog(”").schema:可选,
7、表示Schema名称,默认为Schema("").3、@id必须@id定义了映射到数据库表的主键的属性,一个实体只能有一个属性被映射为主键.置于getXxxx()前.4、@GeneratedValue(strategy=GenerationType,generator=”")可选strategy:表示主键生成策略,有AUTO,INDENTITY,SEQUENCE和TABLE4种,分别表示让ORM框架自动选择,根据数据库的Identity字段生成,根据数据库表的Sequence字段生成,以有根据一个额外的表生成主键,默认为AUTOgenerato
8、r:表示主键生成器的名称,这个属性通常和ORM框架相关,例如,Hibernate可以指定uuid等主键生成方式.示例: @Id @Generated