Java 想了解hibernate中的@ManyToMany关系吗
我有一个实体。Java 想了解hibernate中的@ManyToMany关系吗,java,hibernate,Java,Hibernate,我有一个实体。 有人能解释我在实体中定义的前任和继任者的关系吗 像 我有多个步骤 步骤1、步骤2、步骤3、步骤4、步骤5 我们只是从它的前身开始的这一步 因此,对于T_数据,步骤表数据如下所示 步骤5的前身是=步骤4,步骤3 步骤4的前身是=步骤3 步骤3的前身是=步骤2 步骤2的前身是=步骤1 步骤1没有前置项 现在我的实体如下所示 @Entity @Table(name = "T_DATA_STEP") public class DataStepEntity implements DBEnt
有人能解释我在实体中定义的前任和继任者的关系吗 像
我有多个步骤
步骤1、步骤2、步骤3、步骤4、步骤5 我们只是从它的前身开始的这一步
因此,对于T_数据,步骤表数据如下所示
步骤5的前身是=步骤4,步骤3
步骤4的前身是=步骤3
步骤3的前身是=步骤2
步骤2的前身是=步骤1
步骤1没有前置项
现在我的实体如下所示
@Entity
@Table(name = "T_DATA_STEP")
public class DataStepEntity implements DBEntity, Serializable {
@Id
@Column(name = "ID", nullable = false, unique = true)
@GenericGenerator(name = "DATA_STEP_ID", strategy = "native")
@GeneratedValue(generator = "DATA_STEP_ID")
private Long id;
@ManyToMany(targetEntity = DataStepEntity.class, fetch = FetchType.EAGER)
@JoinTable(name = "T_WKF_PREDECESSOR", joinColumns = @JoinColumn(name = "DATA_STEP_ID"))
@Fetch(FetchMode.SUBSELECT)
@JsonIgnore
private Collection<DataStepEntity> predecessor;
@ManyToMany(mappedBy="predecessor",fetch = FetchType.EAGER)
@Fetch(FetchMode.SUBSELECT)
@JsonIgnore
private Collection<DataStepEntity> successor;
}
@实体
@表(name=“T_数据_步骤”)
公共类DataStepEntity实现DBEntity,可序列化{
@身份证
@列(name=“ID”,nullable=false,unique=true)
@GenericGenerator(name=“DATA\u STEP\u ID”,strategy=“native”)
@GeneratedValue(generator=“数据\u步骤\u ID”)
私人长id;
@ManyToMany(targetEntity=DataStepEntity.class,fetch=FetchType.EAGER)
@JoinTable(name=“T_WKF_preducer”,joinColumns=@JoinColumn(name=“DATA\u STEP\u ID”))
@Fetch(FetchMode.SUBSELECT)
@杰索尼奥雷
私人收藏;
@ManyToMany(mappedBy=“preceducer”,fetch=FetchType.EAGER)
@Fetch(FetchMode.SUBSELECT)
@杰索尼奥雷
私人收藏继承人;
}
所以我的问题是在hibernate中,当我获得步骤4的DataStepEntity时,它将给我作为步骤3的前置项和作为步骤5的后续项
我想了解接班人的全部情况
它将如何将步骤5绑定为步骤4的后续步骤?在您的
数据步骤实体中,后续步骤之间存在自反的@manytomy
关系。将有一个JoinTable
,其中有两个外键指向T_DATA_STEP
表(DataStepEntity的表)。一列是数据步骤实体的Id,另一列是其后续实体的Id
每个DataStepEntity
在此表中为每个后续实体都有一个条目。例如,如果Step4只有一个后续项Step5,则在“Id”列中将有一个Id为Step4的条目,在“后续项Id”列中将有一个Id为Step5的条目
该过程与指向不同实体的@ManyToMany
关系相同,但创建的JoinTable
中的外键指向同一个表
对于前一种情况,它与后一种情况相同。将有另一个具有DataStepEntities及其前身ID的JoinTable