@OneToMany() 注解
@OneToMany() 注解用于定义两个实体之间的一对多关系。它有以下参数:
- targetEntity:目标实体的类型(必填)。
- mappedBy:指定关联关系的反向关系。它指向目标实体中的一对多关系的属性名。
- cascade:指定级联操作。默认情况下,级联操作不会执行。可以使用 CascadeType 枚举类型配置级联操作,例如 CascadeType.PERSIST、CascadeType.REMOVE。
- fetch:指定关联关系的加载方式。默认情况下为 FetchType.LAZY,表示延迟加载。FetchType.EAGER 表示即时加载。
- orphanRemoval:指定是否删除孤岛对象。默认值为 false。如果设置为 true,当从关系中删除一个实体时,该实体将被删除。
- mappedBy 和 JoinColumn 不能同时使用,如果同时使用,将抛出异常。根据业务需要选择其中的一个。
- orphanRemoval 和级联删除不能同时使用,如果同时使用,将抛出异常。根据业务需要选择其中的一个。
@JoinColumn()注解
@JoinColumn()
是Hibernate/JPA中的一种注解,用于定义实体类中的关联关系。下面是关于@JoinColumn()
注解的参数详解:
-
name
:定义连接表中的关联列的名称。默认情况下,Hibernate会以“表名_列名”的格式创建关联列。 -
nullable
:定义关联列是否允许为空。默认为true
。 -
unique
:定义关联列是否唯一。默认为false
。 -
referencedColumnName
:定义参考表中的列名。如果未指定,则使用参考表的主键。 -
insertable
:定义是否在插入实体时添加关联列。默认为true
。 -
updatable
:定义是否在更新实体时更新关联列。默认为true
。 -
columnDefinition
:定义关联列的SQL DDL语句。 -
table
:定义关联的连接表名。如果未指定,则使用主表的表名。