BeanFieldGroup创建嵌套实体

时间:2015-03-28 16:25:26

标签: vaadin vaadin7

@Entity
public class Document {
    @OneToMany(mappedBy="paper", cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
    private Set<DocumentAuthor> authors;
}

@Entity
public class DocumentAuthor {
    @Column(name="order")
    @NotNull
    private Integer order;

    @ManyToOne(optional=true, cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
    @JoinColumn(name="account", columnDefinition = "integer")
    private Account account;

    @ManyToOne(optional=false, cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
    @JoinColumn(name="document", columnDefinition = "integer")
    private Document document;
}
@Entity
public class Account {
    @OneToMany(mappedBy="account", cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
    private Set<DocumentAuthor> papers;
}

在我想要与beanfieldgroup一起使用的实体之上。如果我编辑/创建文档,我想添加一个或多个作者(帐户)并为这些作者设置订单。如何动态创建这些&#34; JoinTable&#34;与BeanFieldGroup?

1 个答案:

答案 0 :(得分:1)

Viritin add-on包含许多方便的助手来编辑这种关系。最佳解决方案始终是特定于域的。如果要内联创建作者,可以使用ElementCollectionField(example)。如果您只是希望用户从现有的一组引用实体中进行选择,则可以使用MultiSelectTable(示例)或CheckBoxGroup

Viritin中没有任何字段支持开箱即用,但至少添加简单的上下箭头应该相当容易。