Olá pessoal, estou fazendo uma aplicação para desktop que envolve algumas entidades.
Mas surgiu a dúvida de como faço o mapeamento usando Anotations nesse auto relacionamento.
Na entidade Usuário: Usuário cadastra (0:N) usuários e 1 usuário é cadastrado por (1:1) usuário. Eu deixei uma única entidade p/ usuário, porque os atributos são comuns tanto para o administrador, quanto para o funcionário, aí o que vai diferenciar é um campo char, que vai armazenar A ou F no banco.
Mas como devo fazer essa anotação no auto relacionamento?
Tô procurando na internet desde ontem e não encontro nada que ajude!
segue parte do mapeamento
@Entity
public class Usuario {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int codigo;
private char tipoUsuario;
@ManyToOne
@JoinColumn(name="cidade")
private Cidade cidade;
public Usuario() {}
}
Agradeço quem puder ajudar!
Não entendi direito o que você quer fazer no relacionamento do usuário…
Um usuário não cadastra outro, mas um usuário cadastra um usuário…
Não entendi direito o que você quer fazer…
[quote=tandrade86]Não entendi direito o que você quer fazer no relacionamento do usuário…
Um usuário não cadastra outro, mas um usuário cadastra um usuário…
Não entendi direito o que você quer fazer…[/quote]
Pode acontecer de um usuário cadastrado no banco, nunca cadastrar ninguém, como também poderá acontecer dele cadastrar N usuários. Por isos coloquei (0:N)
E no momento do cadastro, um usuário é cadastrado por um usuário, por isso coloquei (1:1)
Espero ter esclarecido agora.
Mas continuo sem saber se o mapeamento está certo ou não.
Segue o código abaixo, e espero que alguém que já fez esse tipo de mapeamento fale alguma coisa!
[code]
@Entity
public class Usuario {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int codigo;
private char tipoUsuario;
@OneToMany
private List<Usuario> usuarios = new ArrayList<Usuario>();
@JoinColumn(name="usuario")
@ManyToOne
private Usuario usuario;
public Usuario() {}
}[/code]