首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GvNIX中的多到多关系

GvNIX中的多到多关系
EN

Stack Overflow用户
提问于 2015-05-04 10:42:40
回答 1查看 85关注 0票数 0

在我的E模型中,我有两个类(用户和例程),与许多关系相关,但我不知道如何将其转换为GvNIX代码。我应该在每个类中使用set属性来指定多到多个基数吗?例如:

代码语言:javascript
复制
field set --fieldName routines --class ~.objects.User --type ~.objects.Routine --cardinality MANY_TO_MANY 
field set --fieldName users --class ~.objects.Routine --type ~.objects.User --cardinality MANY_TO_MANY
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-06 09:44:23

要在两个方向上映射多到多的关系,必须将一个方向定义为所有者,而另一个方向必须使用--mappedBy属性来定义其映射。

以典型的员工项目为例,一个员工可以参与多个项目,一个项目可以有多个员工。要创建这样的双向多到多关系,请使用字段set命令:

创建以下实体:

代码语言:javascript
复制
entity jpa --class ~.domain.Project
entity jpa --class ~.domain.Employee

创建关系的所有者:

代码语言:javascript
复制
field set --class ~.domain.Employee --fieldName projects --type ~.domain.Project

然后创建关系的另一面:

代码语言:javascript
复制
field set --class ~.domain.Project --fieldName employees --type ~.domain.Employee --mappedBy projects

如果不使用--mappedBy,则持久性提供程序将假设存在两个独立的关系,最终将得到插入到联接表中的重复行。如果您有一个概念上的双向关系,但是数据库中有两个不同的连接表,那么您就不能使用--mappedBy,因为您需要维护两个独立的表。

最后,要定制生成的代码,只需使用JPA强制路克,请看一下Persistence/ManyToMany

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30028123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档