午后星期午

hibernate annotation 之 注解声明

@Entity

     将一个 POJO 类注解成一个实体 bean ( 持久化 POJO 类 )

@Table

    为实体 bean 映射指定具体的表,如果该注解没有被声明,系统将使用默认值 ( 即实体 bean 不带包名的短类名 )

@Id

    将实体bean中的某个属性定义为标识符 ( identifier )

@GeneratedValue

    该注解可以定义该标识符的生成策略 ( 默认是 AUTO 策略 ) :

    AUTO — 可以是 IDENTITY,或 SEQUENCETABLE 类型,这取决于不同的底层数据库。

    TABLE — 使用表保存id值

    IDENTITY — 自然递增

    SEQUENCE — 序列

@Transient

     被注解成 @Transient 的 getter 方法或属性,将不会被持久化,hibernate 会忽略这些字段和属性。

@Basic

    所有没有定义注解的属性,等价于在其上面添加了 @Basic 注解.。通过 @Basic注解可以声明属性的获取策略 ( fetch strategy )

@Temporal

    在核心的 Java API 中并没有定义时间精度 ( temporal precision )。因此处理时间类型数据时,你还需要定义将其存储在数据库中所预期的精度。

    在数据库中,表示时间类型的数据有 DATE,TIME,和 TIMESTAMP 三种精度 ( 即单纯的日期,时间,或者两者兼备 )。 可使用 @Temporal 注解来调整精度。

@Column 

    将实体 bean 中的属性映射到表中的列。

    @Column(

        name = "columnName";                                (1)

        boolean unique() default false                 (2)

        boolean nullable() default true               (3)

        boolean insertable() default true           (4)

        boolean updatable() default true           (5)

        String columnDefinition() default ""      (6)

        String table() default ""                               (7)

        int length() default 255                              (8)

        int precision() default 0                             (9)

        int scale() default 0                                     (10)

(1)     name 可选,列名(默认值是属性名)

(2)     unique 可选是否在该列上设置唯一约束(默认值false)

(3)     nullable 可选是否设置该列的值可以为空(默认值true)

(4)     insertable 可选该列是否作为生成的insert语句中的一个列(默认值true)

(5)     updatable 可选该列是否作为生成的update语句中的一个列(默认值true)

(6)     columnDefinition 可选为这个特定列覆盖SQL DDL片段 (这可能导致无法在不同数据库间移植)

(7)     table 可选定义对应的表(默认为主表)

(8)     length 可选列长度(默认值255)

(9)     precision 可选列十进制精度(decimal precision)(默认值0)

(10)  scale 可选如果列十进制数值范围(decimal scale)可用,在此设置(默认值0)

 [ 转载出处:http://www.blogjava.net/fancydeepin ]

posted on 2013-12-31 13:30 午后星期午 阅读(116) 评论(0)  编辑  收藏 所属分类: JavaEE


只有注册用户登录后才能发表评论。


网站导航: