spring-hibernate注解

实体类上的一些注解 标记在类上的注解

  • @Entity指明这是一个实体bean
  • @Table指定要映射的数据库表, name指定映射表的表名, 缺省为类名
  • 【spring-hibernate注解】@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该属性不会映射到表中的字段

    推荐阅读