JPA 做 ORM(Object Relational Mapping,对象关系映射)时,为了开发效率,通常会在实体类上用 hibernate 的关系关联注解。 包括:@OneToOne
、 @OneToMany
、@ManyToOne
、@ManyToMany
、@JoinTable
、以及 @JoinColumn
以及 OrderBy
;
JPA 中
@JoinColumn
与 关联注解之间用法
@JoinColumn
定义多个字段之间的关联关系,配合@OneToOne
、@ManyToOne
以及 @OneToMany
一起使用
@Repeatable(JoinColumns.class)
@Target({
ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface JoinColumn {
// 关联字段(子)
String name() default "";
// 关键实体字段(父)),非必填
String referencedColumnName() default "";
boolean unique() default false;
boolean nullable() default true;
// 是否更新 插入操作
boolean insertable() default true;
boolean updatable() default true;
String columnDefinition() default "";
String table() default "";
ForeignKey foreignKey() default @ForeignKey(ConstraintMode.PROVIDER_DEFAULT);
}
以 @OneToMany
注解为例,源代码如下
@Target({
ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface OneToMany {
// 关联对象实体类
Class targetEntity() default