Fala ai Galera !!!
To precisando de umas ajudas !!!
Estou tentando usar hibernateDaoSupport do spring, mas desde que comecei a utilizar meu hibernate comecou a se comportar estranhamente.
O que está acontecendo é que tenho uma entidade Usuario e uma entidade Grupos, possui um relacionamento M:N nestas duas entidades. No meu formulário de cadastro de usuários eu crio uma entidade e Usuário e populo uma lista de grupos que ela possui dentro dela, o problema é que ao persistir a entidade usuário o spring nao está persistindo os grupos que ela possui, ou seja nao esta gravando os grupos do usuário na tabela que faz o join entre usuários e grupos.
Setei nas entidade o cascade para ALL, acho que está tudo certinho.
Gostaria de saber se alguem que utilzou este hibernateDaoSupport do Spring conseguiu fazer isto, vou colocar abaixo meus codigos das duas entidades.
public class Usuario implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "codigo")
private Integer codigo;
@Basic(optional = false)
@Column(name = "nome")
private String nome;
@Column(name = "sobrenome")
private String sobrenome;
@Column(name = "cep")
private String cep;
@Column(name = "logradouro")
private String logradouro;
@Column(name = "numero")
private Integer numero;
@Column(name = "complemento")
private String complemento;
@Column(name = "cpf")
private String cpf;
@Column(name = "rg")
private String rg;
@Column(name = "cidade")
private String cidade;
@Column(name = "foto")
private String foto;
@Column(name = "dataNascimento")
@Temporal(TemporalType.DATE)
private Date dataNascimento;
@Column(name = "dataCadastro")
@Temporal(TemporalType.DATE)
private Date dataCadastro;
@Column(name = "login")
private String login;
@Column(name = "senha")
private String senha;
@Column(name = "telefoneRes")
private String telefoneRes;
@Column(name = "telefoneCel")
private String telefoneCel;
@Column(name = "telefoneCom")
private String telefoneCom;
@Column(name = "email")
private String email;
@JoinTable(name = "usuario_componente", joinColumns = {@JoinColumn(name = "codUsuario", referencedColumnName = "codigo")}, inverseJoinColumns = {@JoinColumn(name = "codComponente", referencedColumnName = "codigo")})
@ManyToMany(fetch = FetchType.LAZY)
private List<Componente> componenteCollection;
@JoinTable(name = "usuario_grupo", joinColumns = { @JoinColumn(name = "codUsuario", referencedColumnName = "codigo") },
inverseJoinColumns = { @JoinColumn(name = "codGrupo", referencedColumnName = "codigo") })
@ManyToMany(mappedBy = "usuarioCollection", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<Grupo> grupoCollection;
@JoinColumn(name = "estado", referencedColumnName = "codigo")
@ManyToOne(fetch = FetchType.LAZY)
private Estado estado;
@Entity
@Table(name = "grupo")
public class Grupo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "codigo")
private Integer codigo;
@Column(name = "nomeGrupo")
private String nomeGrupo;
@Column(name = "descricao")
private String descricao;
@JoinTable(name = "usuario_grupo", joinColumns = { @JoinColumn(name = "codGrupo", referencedColumnName = "codigo") }, inverseJoinColumns = { @JoinColumn(name = "codUsuario", referencedColumnName = "codigo") })
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<Usuario> usuarioCollection;