Java 如何映射表的类(@ManyToMany)之间的关系

Java 如何映射表的类(@ManyToMany)之间的关系,java,hibernate,jpa,orm,hibernate-annotations,Java,Hibernate,Jpa,Orm,Hibernate Annotations,如何映射唯一表的三个类@ManyToMany单向之间的关系 这种关系是这样的: project_id task_id activity_id 1 2 3 1 2 4 2 1 2 2 1 1 2 2 3 2

如何映射唯一表的三个类@ManyToMany单向之间的关系

这种关系是这样的:

 project_id     task_id    activity_id
    1            2           3
    1            2           4
    2            1           2
    2            1           1
    2            2           3
    2            3           5 
  • 项目有很多任务
  • 许多任务都有许多特定活动(符合标准)-对于每个任务,都有许多特定活动
  • 任务和活动在数据库中是标准的
所以,当我创建一个项目时,我会选择一些任务和一些任务的活动

我想创建一个表(项目任务活动地图),如下所示:

 project_id     task_id    activity_id
    1            2           3
    1            2           4
    2            1           2
    2            1           1
    2            2           3
    2            3           5 
我如何映射类项目

参考链接:

我认为层次结构像

计划 | 任务 | 活动

项目和活动之间没有直接关系

为了更好地为任务和活动创建多对多表,请将项目保持为仅主项目。 共4张表格 -计划 -任务 -活动 -任务活动映射

第四个表将通过Embable创建任务和活动的Hibernate映射

计划 | 任务 | 活动

项目和活动之间没有直接关系

为了更好地为任务和活动创建多对多表,请将项目保持为仅主项目。 共4张表格 -计划 -任务 -活动 -任务活动映射


第四个表将通过Embable通过Hibernate映射任务和活动来创建。

这是一个很好的解决方案,但您知道是否只有一些注释来维护三个类吗?例如:Project、Task、Activity和Project\u Task\u Activity\u map(这一个是用一个注释创建的),Tables将所有内容放在一个表中,这将导致数据冗余。如果可以,那么您的awnser无效,因为通过Embable为任务和活动创建Hibernate映射不起作用!embable只对@OneToMany的关系有用,而对@ManyToMany没有用处。试着在谷歌上找到例子,你会得到@ManyToMany的想法,因为我在我的项目中也使用了同样的方法,而且它正在发挥作用。目前,我有点忙,否则我也会放相同的代码。我试过,我读了hibernate文档,但这不起作用,一个id可以在关系中保存
@manytomy
为每种类型创建一个表。例如:At实体任务和活动
@manytomy
设置任务
@manytomy
设置活动;创建两个其他表:任务和活动、任务和活动任务。你可以试试,但这行不通。不幸的是,这是一个很好的解决方案,但您知道是否只有一些注释来维护三个类吗?例如:Project、Task、Activity和Project\u Task\u Activity\u map(这一个是用一个注释创建的),Tables将所有内容放在一个表中,这将导致数据冗余。如果可以,那么您的awnser无效,因为通过Embable为任务和活动创建Hibernate映射不起作用!embable只对@OneToMany的关系有用,而对@ManyToMany没有用处。试着在谷歌上找到例子,你会得到@ManyToMany的想法,因为我在我的项目中也使用了同样的方法,而且它正在发挥作用。目前,我有点忙,否则我也会放相同的代码。我试过,我读了hibernate文档,但这不起作用,一个id可以在关系中保存
@manytomy
为每种类型创建一个表。例如:At实体任务和活动
@manytomy
设置任务
@manytomy
设置活动;创建两个其他表:任务和活动、任务和活动任务。你可以试试,但这行不通。很遗憾,您的表和您链接到的orders表都没有标准化。在这种情况下,创建正确的映射并不容易。您想这样做吗?您的表和您链接到的orders表都没有标准化。在这种情况下,创建正确的映射并不容易。你想要吗?