Jakarta ee 如何在JPA中持久化具有集合属性的Bean?

Jakarta ee 如何在JPA中持久化具有集合属性的Bean?,jakarta-ee,jpa,persistence,Jakarta Ee,Jpa,Persistence,我有以下实体类: public class Usuario implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "Id") private Integer id;

我有以下实体类:

public class Usuario implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "Id")
    private Integer id;
    @Size(max = 255)
    @Column(name = "Senha")
    private String senha;
    @Size(max = 255)
    @Column(name = "Nome")
    private String nome;
    @ManyToMany(mappedBy = "usuarioCollection", fetch = FetchType.EAGER)
    private Collection<Grupo> grupoCollection;      

}
它执行,但usuario_grupo表中没有寄存器

也就是说,usuario在表grupo中注册,grupo在表grupo中已经存在,但是usuario\u grupo没有

你知道我该怎么做吗

注意:有些名字是葡萄牙语的。

JPA不喜欢收藏。它适用于集合无序集合、列表有序集合,我相信我还不需要HashMap,所以我不确定


如果您的bean必须具有Collection属性,请将其设置为transient并创建一个新的attibute get和set方法,至少它可以将该集合作为集合或列表进行管理。

我的猜测是,您没有将对象添加到集合关系的两侧,因此它们不会被写入。

您的代码非常长。请提供一个复制问题的答案。我编辑了这篇文章以隐藏无用的代码。不幸的是,这个答案不正确。集合属性正常,顺便说一下,这是使用NetBeans向导时的默认选择。OP问题是由其他完全错误的东西引起的。也许讨论中的JPA实现在集合字段方面有一些问题,但是如果是这样的话,它就不是一个兼容的实现了。。。而且OP没有提到正在使用什么。
public class Grupo implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "Id")
    private Integer id;
    @Size(max = 255)
    @Column(name = "Nome")
    private String nome;
    @JoinTable(name = "usuario_grupo", joinColumns = {
        @JoinColumn(name = "GrupoID", referencedColumnName = "Id")}, inverseJoinColumns = {
        @JoinColumn(name = "UsuarioID", referencedColumnName = "Id")})
    @ManyToMany(fetch = FetchType.EAGER)
    private Collection<Usuario> usuarioCollection;

}
entityManager.persist(usuario);