最近學習Spring,其中數據插表,我的以爲,用註解的方式會跟簡單一些,如下作一些經常使用註解的總結。html
1、聲明實體數據庫
@Entityapp
對實體註釋。任何Hibernate映射對象都要有這個註釋ide
@Table學習
聲明此對象映射到數據庫的數據表,經過它能夠爲實體指定表(talbe),目錄(Catalog)和schema的名字。該註釋不是必須的,若是沒有則系統使用默認值(實體的短類名)。fetch
@Versionthis
該註釋可用於在實體Bean中添加樂觀鎖支持。spa
2、聲明主鍵.net
@Idcode
聲明此屬性爲主鍵。該屬性值能夠經過應該自身建立,可是Hibernate推薦經過Hibernate生成
@GeneratedValue
指定主鍵的生成策略。有以下四個值
TABLE:使用表保存id值
IDENTITY:identitycolumn
SEQUENCR :sequence
AUTO:根據數據庫的不一樣使用上面三個
1 /* 2 * 主鍵 3 * 生成策略爲自動增加 4 * 惟1、長度爲20 5 */ 6 @Id 7 @GeneratedValue 8 @Column(name = "Attributes", unique = true, nullable = false, length = 20)
3、聲明普通屬性
@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 }
4、聲明關聯關係
一對多關聯關係
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