Pessoal,
Estou com uma grande duvida, ja dei uma pesquisada na net, mas até agora não encontrei nada muito esclarecedor nem consegui evoluir.
Eu nao estou conseguindo persistir meus dados quando tenho um relacionamento ManyToOne, no meu caso, eu quero persistir os dados de um usuario do sistema, esse usuario tem nome, login, senha e tipo 9que é um TipoUsuario).
Fiz as classes Usuario e TipoUsuario, coloquei uma coleção na minha classe TipoUsuario e um atributo do TipoUsuario na minha classe Usuario, tambem fiz as anotações de persistencia, mas nao sei se fiz corretamente e tenho bastante duvida na hora de persistir: como vou pegar o tipo de usuario que vem como int (apenas o codigo) do form html e persistir os dados de usuario e depois como vou listar esse usuario mostrando o seu tipo? Algo assim...
package catalogo.modelo;
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.Fetch;
@Entity
@Table(name = "usuario", schema = "catalogo")
public class Usuario implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_usuario")
private int id;
@Column(name = "nome")
private String nome;
@Column(name = "login")
private String login;
@Column(name = "senha")
private String senha;
@ManyToOne(fetch = FetchType.EAGER, optional = false)
@JoinColumn(name = "id_tipo_usuario", referencedColumnName = "id_tipo_usuario", insertable = true, updatable = true)
@Fetch(org.hibernate.annotations.FetchMode.JOIN)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
@Column(name = "id_tipo_usuario")
private TipoUsuario tipoUsuario;
//setter e getters
}
TipoUsuario.java:
[/code]
package catalogo.modelo;
import java.io.Serializable;
import java.util.Collection;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = "tipo_usuario")
public class TipoUsuario implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_tipo_usuario")
private int id;
@Column(name = "tipo")
private String tipo;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "tipoUsuario", fetch = FetchType.LAZY)
private Collection
//getters e setters
}
[code]
Alguem pode me ajudar? Me mostrar o que devo melhorar, onde estou errando, etc.