其他分享
首页 > 其他分享> > 如何在Play Framework 2.1.x上使用YAML填充ManyToMany关系

如何在Play Framework 2.1.x上使用YAML填充ManyToMany关系

作者:互联网

我有以下ManyToMany(双向)关系:

@Entity
public class Proposal extends Model {
    ...
    @ManyToMany
    public List<Tag> tags;
}

@Entity
public class Tag extends Model {
    ...
    @ManyToMany(mappedBy="tags")
    public List<Proposal> taggedProposals;
}

我想使用yaml文件(稍后使用简单视图显示)使用一些测试数据填充我的数据库.这是我的yaml文件的一部分:

...
- &prop2 !!models.Proposal
    id:         2
    title:      Prop2 title
    proposer:   *user2

- &prop3 !!models.Proposal
    id:         3
    title:      Prop3 title
    proposer:   *user3

# Tags

- &tag1 !!models.Tag
    name: Tag1 name
    desc: Tag1 description
    taggedProposals:
        - *prop1

- &tag2 !!models.Tag
    name: Tag2 name
    desc: Tag2 description
    taggedProposals:
        - *prop2
        - *prop3

问题是,当我尝试显示Proposal的标签或Tag的taggedProposals时,ArrayLists是空的!我尝试使用square brackets and commas没有成功.正在加载和显示所有其他数据.

解决方法:

如果Leon Radley发布的答案是准确的,那就不再是这样了!
Play进化了,自2.1版本开始,很多ToMany引用按列表初始化工作(see this link)!有关其工作原理的示例,请参阅User.zones.

zones:
    - &zone1 !!models.Zone
        id:                 1
        gtbName:            "ZZ01"
    - &zone2 !!models.Zone
        ...

users:
    - &user4 !!models.User
        id:                 4
        profile:            *profile4
        defaultZone:        *zone3
        zones:
            - *zone1
            - *zone2
            - *zone3

标签:java,yaml,many-to-many,playframework-2-1,ebean
来源: https://codeday.me/bug/20190529/1177108.html