1.@Entity 标识这个pojo是一个实体
2.@Table(name=users)设置表名
3.@Id 设置主键
4.@Column 设置字段类型
name : 表中对应的字段名
unique : 是否仅有
nullable: 是否为空
inserttable:是否能够刺进
updateable:是否能够更新
columnDefinition: 界说建表时创立此列的DDL
secondaryTable: 从表名。假如此列不建在主表上(默许建在主表),该特点界说该列所在从表的姓名
precision 设置精度 scale 保存的小数位
5.@OrderBy : A8站源码交易平台排序
6.@GeneratedValue(strategy=默许值)strategy的取值:
GenerationType.AUTO 由JPA容器主动生成
GenerationType.IDENTITY 主键自增的方法(依赖于详细的数据库,不支持主键自增,不能够运用)
GenerationType.TABLE 经过表来完成主键id自增的方法(不依赖数据库,处理数据搬迁的问题)
GenerationType.SEQUENCE 经过主键完成主键自增的方法(依赖于详细的数据库,数据库没有 SEQUENCE ,不能够运用)
7.@SequenceGenerator 假如实体表明的生成战略是GenerationType.SEQUENCE ,有必要供给该注解,A8站源码交易平台 它的参数描绘了运用序列号生成实体标识的详细细节
name : 它表明了 SequenceGenerator 注释在 OpenJPA 容器中的仅有称号
8.一对多映射联系:
T_One实体:
@OneToMany(cascade = CascadeType.ALL, mappedBy = “用在被保护端”) 指向多的那方的pojo的相关外键字段
cascade 级联操作
CascadeType.PERSIST:级联耐久化,也便是级联保存。比方一个学生有许多门成果,保存学生了,那么也就会级联保存各门成果信息
CascadeType.REMOVE:级联删去,删去学生了,那么学生的成果也从数据库中删去
CascadeType.MERGE:级联兼并,修正学生成果信息了,那么修正的成果信息会保存到数据库中,和上面persist的差异类似于put和post的差异
CascadeType.DETACH:级联游离,要想删去某一条学生信息,但学生的id在成果表中作为外键,无法直接删去
CascadeType.REFRESH:级联改写
CascadeType.ALL:上面一切的结合,慎用
T_Many实体:
@JoinColumn(name = “ONE_ID”, referencedColumnName = “ONE_ID”)//设置对应数据表的列名和引证的数据表的列名
@ManyToOne//设置在“一方”pojo的外键字段上
9.多对多映射联系:
ManyA实体:
@ManyToMany
@JoinTable(name = “格局是:主控方_被控方(联系表)”, joinColumns = {@JoinColumn(name = “MANYA_ID(中心表的主键)”, referencedColumnName = “MANYA_ID”)}, inverseJoinColumns = {@JoinColumn(name = “MANYB_ID”, referencedColumnName = “MANYB_ID”)})
jointable中name指定表名,然后指定外键,joinColumns是主操作表的中心表列,能够有好几个,而inverseJoinColumns是副操作表的中心表列,也便是student作为主操作表
ManyB实体:
@ManyToMany(mappedBy = “被保护端”)
10.一对一映射联系
A实体:
@OneToOne(cascade = CascadeType.ALL, mappedBy = “oneA”)//主Pojo这方的设置比较简单,只需设置好级联和映射到从Pojo的外键就能够了。
B实体:
@JoinColumn(name = “ONEA_ID”, referencedColumnName = “ONEA_ID”, insertable = false, updatable = false)//设置从方指向主方的相关外键,这个ONEA_ID其实是表T_ONEA的主键
@OneToOne
A8站源码交易平台