Spring中常用的注解

最近学习Spring,其中数据插表,个人觉得,用注解的方式会跟简单一些,以下做一些常用注解的总结。

一、声明实体

        @Entity

            对实体注释。任何Hibernate映射对象都要有这个注释

        @Table

           声明此对象映射到数据库的数据表,通过它可以为实体指定表(talbe),目录(Catalog)和schema的名字。该注释不是必须的,如果没有则系统使用默认值(实体的短类名)。

         @Version

             该注释可用于在实体Bean中添加乐观锁支持。

        二、声明主键

        @Id

           声明此属性为主键。该属性值可以通过应该自身创建,但是Hibernate推荐通过Hibernate生成

        @GeneratedValue

           指定主键的生成策略。有如下四个值

               TABLE:使用表保存id值

               IDENTITY:identitycolumn

               SEQUENCR :sequence

               AUTO:根据数据库的不同使用上面三个

1 /*
2       * 主键
3       * 生成策略为自动增长
4       * 唯一、长度为20
5      */
6      @Id
7      @GeneratedValue
8      @Column(name = "Attributes", unique = true, nullable = false, length = 20)

        

        三、声明普通属性

        @Column

           声明该属性与数据库字段的映射关系。

 1 @Table(name="Attributes")
 2 @Entity
 3 
 4 public class Attributes extends BaseEntity{
 5     private static final long serialVersionUID = 8462412232619290034L;
 6     
 7     @Column(name="IMAGE_ID")
 8     long image_id;
 9     @Column(name="SYNSETS")
10     private String synsets;
11     @Column(name="H")
12     private String h;
13     @Column(name="OBJECT_ID")
14     private int object_id;
15     @Column(name="Names")
16     private String names;
17     @Column(name="W")
18     private String w;
19     @Column(name="Y")
20     private String y;
21     @Column (name="X")
22     private String x;
23     
24     
25     public long getImage_id() {
26         return image_id;
27     }
28     public void setImage_id(long image_id) {
29         this.image_id = image_id;
30     }
31     public String getSynsets() {
32         return synsets;
33     }
34     public void setSynsets(String synsets) {
35         this.synsets = synsets;
36     }
37     public String getH() {
38         return h;
39     }
40     public void setH(String h) {
41         this.h = h;
42     }
43     public int getObject_id() {
44         return object_id;
45     }
46     public void setObject_id(int i) {
47         this.object_id = i;
48     }
49     public String getNames() {
50         return names;
51     }
52     public void setNames(String names) {
53         this.names = names;
54     }
55     public String getW() {
56         return w;
57     }
58     public void setW(String w) {
59         this.w = w;
60     }
61     public String getY() {
62         return y;
63     }
64     public void setY(String y) {
65         this.y = y;
66     }
67     public String getX() {
68         return x;
69     }
70     public void setX(String x) {
71         this.x = x;
72     }
73     @Override
74    public String toString()
75    {
76         return "Attributes[image_id"+image_id+"synsets"+synsets+"h"+h+"object_id"+object_id+"names"+names+
77                 "w"+ w +"y"+y+"x"+ x +"]";
78    }

四、声明关联关系

        一对多关联关系

1 @OneToMany(mappedBy = "Attributes", cascade={CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REMOVE}, fetch = FetchType.EAGER)
2     Set<MyObject> myObjects=new HashSet<MyObject>();

 一对多声明

        @ManyToOne(cascade=CascadeType.REFRESH,)

        @JoinColumn

         多对一声明 ,声明为双向关联

        一对一关联关系

        @OneToOne(optional= true,cascade =CascadeType.ALL, mappedBy = “person”)
        一对一关联声明
        @OneToOne(optional = false, cascade = CascadeType.REFRESH)
        @JoinColumn(name = “Person_ID”, referencedColumnName = “personid”,unique = true)
        声明为双向关联

 多对多关联关系

        @ManyToMany(mappedBy= “students”)
        多对多关联声明。
        @ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
        @JoinTable(name = “Teacher_Student”,
        joinColumns = {@JoinColumn(name = “Teacher_ID”, referencedColumnName =“teacherid”)},
        inverseJoinColumns = {@JoinColumn(name = “Student_ID”, referencedColumnName =“studentid”)})

第一次就学了这么多。

参考博客:https://www.cnblogs.com/hoojjack/p/6568920.html

https://blog.csdn.net/qq_26344609/article/details/72650464

猜你喜欢

转载自www.cnblogs.com/creative-work/p/9093105.html