最近学习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