zoukankan      html  css  js  c++  java
  • Spring Annotation

    @Entity 
    作用:设置一个类为实体类

    Java代码  收藏代码
    1. @Entity  
    2. public class User {  
    3.   
    4. }  

    @Table 
    作用:设置实体类对应的表,常与@Entity一起使用
    参数:name制定表名,不写的话,为实体类的类名

    Java代码  收藏代码
    1. @Entity  
    2. @Table(name = "tbl_user")  
    3. public class User {  
    4.   
    5. }  

    @Id 
    作用:设置对象标识符

    Java代码  收藏代码
    1. @Id  
    2. private Integer id;  

    @GeneratedValue 
    作用:设置标识符的生成策略,常与@Id一起使用
    参数:strategy指定具体的生成策略

    方式一:@GeneratedValue(strategy=GenerationType.AUTO) 也是默认策略, 即写成@GeneratedValue也可。
    类似于hibernate的native策略,生成方式取决于底层的数据库。

    方式二:@GeneratedValue(strategy = GenerationType.IDENTITY)指定“自动增长”策略,适用于MySQL。 

    方式三:@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_tbl_user")指定“序列”策略,使用于Oracle。

    @Column 
    作用:设置列

    参数:
    name:指定列名
    unique:指定唯一约束
    nullable:指定是否允许为空
    length:长度

    Java代码  收藏代码
      1. @Column(name = "user_name", length = 255, nullable = true, unique = true)  
      2. private String name;  


    @Temporal
     
    作用:设置日期时间

    方式一:@Temporal(TemporalType.DATE)映射为日期 // birthday date (只有日期)
    方式二:@Temporal(TemporalType.TIME)映射为日期 // birthday time (是有时间)
    方式三:@Temporal(TemporalType.TIMESTAMP)映射为日期 //birthday datetime (日期+时间)

    Java代码  收藏代码
    1. @Temporal(TemporalType.DATE)  
    2. private Date birthday;  

    @Lob 
    作用:设置大数据类型

    方式一:

    Java代码  收藏代码
    1. @Lob  
    2. private String text;   //text longtext  

    方式二:

    Java代码  收藏代码
    1. @Lob  
    2. private byte[] image;   // image longblob  

    @Enumerated 
    作用:设置枚举类型

    方式一:

    Java代码  收藏代码
    1. /** 保存字符串到数据库 */  
    2.     @Enumerated(EnumType.STRING)  
    3.     private Role role;  

    方式二:

    Java代码  收藏代码
    1. /** 保存整数到数据库 */  
    2.     @Enumerated(EnumType.ORDINAL)  
    3.     private Role role;  

    上面定义的枚举:Role

    Java代码  收藏代码
    1. /** 角色 */  
    2. public enum Role {  
    3.     游客, 会员, 管理员  
    4. }  

    使用:

    Java代码  收藏代码
    1. User user = new User();  
    2. user.setRole(Role.管理员);  

    @Transient 
    作用:修饰的字段不会被持久化

    Java代码  收藏代码
    1. @Transient  
    2. private String temp;   

    这样也可以:

    Java代码  收藏代码
    1. private transient String temp;  

    以上都这都是比较常用的。

    以上的注解全部定义在javax.persistence下面。

    @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)
  • 相关阅读:
    搜索回车跳转页面
    登录验证码
    【排序算法】排序算法之插入排序
    PAT 乙级 1044 火星数字 (20 分)
    PAT 甲级 1035 Password (20 分)
    PAT 甲级 1041 Be Unique (20 分)
    PAT 甲级 1054 The Dominant Color (20 分)
    PAT 甲级 1027 Colors in Mars (20 分)
    PAT 甲级 1083 List Grades (25 分)
    PAT 甲级 1005 Spell It Right (20 分)
  • 原文地址:https://www.cnblogs.com/yunxiblog/p/5256608.html
Copyright © 2011-2022 走看看