mysql - "Double"PlayFramework中模型之间的多对多关系

标签 mysql playframework-1.x

我是这个论坛的新手,也是 Play Framework 的新手。我正在做文凭工作,我有一个小问题,关于 Play 模型,它被映射到 MySQL 模式实体中。

基本上,我有“公告”和“技术”实体(模型),我想在它们之间建立“双重”多对多关系。更具体地说,我想要“RequiredTecnologies”和“Good-To-KnowTechnologies”交叉表。有什么办法可以“拆分”这两个表吗?这是生成一个 ManyToMany 表的代码,其中重复列“id”引用了公告。

// ENTITY ANNOUNCE
...
@Entity
public class Announce extends Model {

    ...
    @JoinColumn(nullable=true)
    @ManyToMany
    public List<Technology> reqTechno;

    @JoinColumn(nullable=true)
    @ManyToMany
    public List<Tehnologija> gtkTechno;
    ...
}

// ENTITY TECHNOLOGY
...
@Entity
public class Technology extends Model {

    ...
@ManyToMany(mappedBy = "reqTechno")
public List<Announce> annRT;

@ManyToMany(mappedBy = "gtkTechno")
public List<Announce> annGT;
    ...
}

此代码按以下方式在 MySQL 中生成表:

annRT_id  reqTechno_id  annGT_id  gtkTechno_id
______________________________________________
       1             2         1             7
       1             3         1             9
    null          null         1            10
       2             4         2             7

我想要的结果是:

    annRT_id  reqTechno_id       annGT_id  gtkTechno_id
__________________________       ______________________
       1             2                  1             7
       1             3                  1             9
       2             4                  1            10
                                        2             7

提前致谢,如有任何帮助,我们将不胜感激!

附言我使用的 Play 版本是 v. 1.2.5。

最佳答案

使用@JoinTable 为每个表指定不同的表名。 像这样的东西:

@ManyToMany(...)
@JoinTable(name="Announce_reqTechno")
public List<Technology> reqTechno;


@ManyToMany(...)
@JoinTable(name="Announce_gtkTechno")
public List<Technology> gtkTechno;

关于mysql - "Double"PlayFramework中模型之间的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17190690/

相关文章:

java - 无法打开 JPA EntityManager 进行交易;嵌套异常是 javax.persistence.PersistenceException

MySQL 过程返回错误值(INSERT SELECT 面对)

java - 拦截@Finally 和@Catch

mysql - 这是收集点击事件的好方法吗?

php - Codeigniter 3.1.0文件上传有效,但图像“full_path”信息从未插入数据库

java - Play Framework 测试错误

java - 数据没有得到持久化

java - Play Framework MVC 邮件程序

php - MySQL 无法连接

java - Play Framework 1.2.7 引导作业数据库写入失败