实体类上的一些注解
标记在类上的注解
-
@Entity指明这是一个实体bean
-
@Table指定要映射的数据库表, name指定映射表的表名, 缺省为类名
-
@DynamicInsert
@DynamicUpdate
生成动态SQL语句, 即在插入和修改数据的时候, 语句中只包括要插入或者修改的字段.
标记在属性上的注解
- @Id将该属性定义为主键
- @GenericGenerator声明了一个hibernate的主键生成策略, name指定生成器名称, strategy指定具体生成器的类名
- @GeneratedValue声明了主键生成策略, generator指定生成主键使用的生成器
- @Length指定字段长度, min最小长度, max最大长度
- @Column表示实体类属性和表中字段对应关系
- name定义被标注字段在数据库表中锁对应字段的名称
- length表示字段的长度, 只有字段是String类型时才有效
- unique表示该字段是否是唯一,默认为false
- nullable表示该字段属性是否可以为null值, 默认为true
- insertable表示在使用insert插入数据时, 是否需要插入该字段的值
- updatable表示使用update插入数据时, 是否需要更新该字段的值(insertable和updatable一般多用于只读的属性, 例如主键和外键等, 这些字段的值通常都是自动生成的)
- colunmDefinition表示创建表时, 该字段创建的SQL语句, 一般用于通过Entity生成表定义时使用.(如果表已经创建,, 该属性没有必要使用)
- table定义了包含当前字段的表名
- precision和scale表示字段的精度,precision表示数值的总长度,scale表示小数部分所占的位数
- @OneToOne设置一对一关联.cascade有5个值, 分别是CascadeType.PERSIST(级联新建), CasecadeType.REMOVE(级联删除), CasecadeType.REFRESH(级联刷新), CascadeType.MERGE(级联更新), CasecadeType.ALL(全部四项).
- @OneToMany设置一对多关联. cascade指定关联级别. fetch指定是否延迟加载, FetchType.LAZY表示延迟加载, FetchType.EAGER表示立即加载
- @JoinColumn和@Column的属性相似, 这个注解用于表示表和表之间的关系
- @Transient该属性不会映射到表中的字段
网友评论