Hibernate自动生成实体类注解..doc
文本预览下载声明
Hibernate自动生成实体类注解
分类: HibernateSSH2012-09-17 02:411257人阅读评论(0)收藏举报
常用的hibernate annotation标签如下: @Entity --注释声明该类为持久类。将一个Javabean类声明为一 个实体的数据库表映射类,最好实现序列化.此时,默认情况下,所有的类属性都为映射到数据表的持久性字段.若在类中,添加另外属性,而非映射来数据库的, 要用下面的Transient来注解. @Table(name=promotion_info) --持久性映射的表(表名=promotion_info).@Table是类一级的注解,定义在@Entity下,为实体bean映射表,目录和schema的名字,默认为实体bean的类名,不带包名. @Id--注释可以表明哪种属性是该类中的独特标识符(即相当于数据表的主键)。 @GeneratedValue --定义自动增长的主键的生成策略. @Transient --将忽略这些字段和属性,不用持久化到数据库.适用于,在当前的持久类中,某些属性不是用于映射到数据表,而是用于其它的业务逻辑需要,这时,须将这些属性进行transient的注解.否则系统会因映射不到数据表相应字段而出错. @Temporal(TemporalType.TIMESTAMP)--声明时间格式 @Enumerated --声明枚举 @Version --声明添加对乐观锁定的支持 @OneToOne --可以建立实体bean之间的一对一的关联 @OneToMany --可以建立实体bean之间的一对多的关联 @ManyToOne --可以建立实体bean之间的多对一的关联 @ManyToMany --可以建立实体bean之间的多对多的关联 @Formula --一个SQL表达式这种属性是只读的,不在数据库生成属性(可以使用sum、average、max等) @OrderBy --Many端某个字段排序(List) Hibernate注解详细说
Hibernate注解详细说明1、@Entity(name=EntityName) 必须name为可选,对应数据库中一的个表 2、@Table(name=,catalog=,schema=) 可选通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息 name:可选,表示表的名称.默认地,表名和实体名称一致,只有在不一致的情况下才需要指定表名 catalog:可选,表示Catalog名称,默认为Catalog(). schema:可选,表示Schema名称,默认为Schema(). 3、@id 必须 @id定义了映射到数据库表的主键的属性,一个实体只能有一个属性被映射为主键.置于getXxxx ()前. 4、@GeneratedValue(strategy=GenerationType,generator=) 可选 strategy:表示主键生成策略,有AUTO,INDENTITY,SEQUENCE 和 TABLE 4种,分别表示让ORM 框架自动选择,根据数据库的Identity字段生成,根据数据库表的Sequence字段生成,以有根据一个额外的表生 成主键,默认为AUTO generator:表示主键生成器的名称,这个属性通常和ORM框架相关,例如,Hibernate可以指定 uuid等主键生成方式.
generator = uuid :由Hibernate基于128 位唯一值产生算法生成16 进制数值(编码后以长度32 的字符串表示)作为主键。
示例: @Id @GeneratedValues(strategy=StrategyType.SEQUENCE) public int getPk() { return pk; } @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator=S_Teacher) @SequenceGenerator(name=S_Teacher,allocationSize=1,initialValue=1, sequenceName=S_Teacher) 5、@Basic(fetch=FetchType,optional=true) 可选 @Basic表示一个简单的属性到数据库表的字段的映射,对于没有任何标注的getXxxx()方法,默认 即为@Basic fetch: 表示该属性的读取策略,有EAGER和LAZY两种,分别表示主支抓取和延迟加载,默认为EAGER.
(1)、
显示全部