1.在三种情况下会用到@PrimaryKeyJoinColumn
继承。
entity class映射到一个或多个从表。从表根据主表的主键列(列名为referencedColumnName值的列),建立一个类型一样的主键列,列名由name属性定义。
one2one关系,关系维护端的主键作为外键指向关系被维护端的主键,不再新建一个外键列。
属性说明:
name:列名。referencedColumnName:该列引用列的列名
columnDefinition:定义建表时创建此列的DDL
2.spring @Entity @Table
参考:https://blog.csdn.net/u010081710/article/details/51692314
3.hibernate注解
参考:https://blog.csdn.net/wangpeng047/article/details/8712752
(1)@GeneratedValue,主键生成策略,其中里面的属性:generator 这个属性是用来给策略起的一个名称
(2)@GenericGenerator,其中里面的属性:name指定生成器名称,strategy 指定具体生成器的类名(指定生成策略)。
(4)@Column 声明了属性到列的映射。
(3)strategy属性的值里面所包含的几种策略
uuid 采用128位的uuid算法生成主键,uuid被编码为一个32位16进制数字的字符串。占用空间大(字符串类型)。
assigned 在插入数据的时候主键由程序处理(很常用),这是<generator>元素没有指定时的默认生成策略。等同于JPA中的AUTO。
例如:
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "assigned")
(5)@Temporal
声明了日期类型。
TemporalType.DATE 日期,例:2011-04-12
TemporalType.TIME 时间,例:22:50:30
TemporalType.TIMESTAMP 日期和时间,例:2011-04-12 22:51:30