类级别注解
@Entity
表示一个实体,对应一个数据库中的表
@Table
用来描述我们生成的这张表的属性,比如表名。
@Embeddable
表明这是一个可以嵌入的类,在其他的表中充当一个属性
属性级别注解
@Id
这个属性注解,用来标注主键
@GeneratedValue
这个属性注解,用来标注主键的生成策略
@Column
对应于数据库中表的哪一行,以及该行的一些属性
@Embedded
用来描述可嵌入的属性类型
@EmbeddedId
用来描述可嵌入的属性类型
@Transient
表示这个字段不会在数据库中生成相应的映射
映射关系注解
这个是一对一单向外键。可以看到我们是用对象来作为我们的一个属性,但是可以在@JoinColum中指定我们在数据库中保存的是该对象的哪一个属性,这里使用的是pid。(听起来有一些绕)
这个是一对一双向外键关联。除了上面的配置外,在另一方加上mappedBy="card"。这里的card也就是一对一主控方中的属性。
private IdCard card;
这个是多对一单向外键关联。这里是多方。
这个是一对多单向外键关联。这里是一方。
这个是一对多单向外键关联。这里是一方。这里因为对应对个对象,所以这里持有的是一个set集合对象。
这里是多对多单向外键关联。生成一个中间表。
单向是指类层面,举个例子,老师类可以知道要教哪些学生,学生不知被哪些老师教 。
再加上mappedBy,就变成了多对多双向关联。