Tenho uma entidade chamada Aluno que está implementada assim (resumo):
@Entity
class Aluno
@Id@GeneratedValue
private int id;
private int rg;
private String nome;
Como fazer com que o campo “rg” seja apenas único, ou seja, o usuário não pode cadastrar a mesma pessoa outras vezes no banco de dados, enquanto aquele “rg” existir no BD. Qual anotação do Hibernate devo usar no atributo “rg”?
Como o RG será a sua chave primária na sua tabela coloca anotação @id em RG. Com isso
o hibertante não vai permitir que o mesmo RG seja cadastrado mais de uma vez. Da forma que está a sua VO com
um sequencial como PK e não tem como garantir…
[quote]Como o RG será a sua chave primária na sua tabela coloca anotação @id em RG. Com isso
o hibertante não vai permitir que o mesmo RG seja cadastrado mais de uma vez. Da forma que está a sua VO com
um sequencial como PK e não tem como garantir… [/quote]
eu concordo, mas sempre tem um usuário que digita o rg errado, e depois para alterar chave primária não é tão simples assim
[quote=mark_domi][quote]Como o RG será a sua chave primária na sua tabela coloca anotação @id em RG. Com isso
o hibertante não vai permitir que o mesmo RG seja cadastrado mais de uma vez. Da forma que está a sua VO com
um sequencial como PK e não tem como garantir… [/quote]
eu concordo, mas sempre tem um usuário que digita o rg errado, e depois para alterar chave primária não é tão simples assim[/quote]
Então vc acha que é melhor eu continuar usando o campo “id” como @Id e usar a anotação @Column(unique=true) no campo “rg”?
Pq assim, toda minha aplicação (gerar faturas, listar faturas, relacionamento com a entidade Fatura, etc…) está baseada no “id” do Aluno.
exatamente isso, eu manderia o “id” como @Id e adicionaria a coluna como indice unico @Column(unique=true),
se for um trabalho da faculdade, o professor vai tirar ponto porque o rg deveria ser pk, assim como jcmird mencionou, mas na vida real, a verdade é outra, se vc mudar sua PK (@id) para o RG, você terá problemas como o citado anteriormente, e vai ter que mudar o relacionamento com o faturamento e outras tabelas que vc possa estar utilizando
O trabalho não é acadêmico. Estou fazendo esse sisteminha pra ajudar minha mãe na escola dela.
O objetivo é controlar os pagamentos dos alunos, listar os inadimplentes, saber o quanto “entra” de dinheiro (receita), o quanto “falta” entrar…enfim…aí conforne vêm as idéias eu vou tentando criar algo. To pensando em criar umas classes de despesas , pra ir aos poucos gerando uma projeção financeira.
Adiantando, se alguém tiver uma idéia rápida e simples de como criar classes de despesas nesse meu sistema (aluguel, contas de ocnsumo, salarios, extras…etc), irá me ajudar bastante. Estou utilizando Hibernate, Vraptor para o controle e JSP (logo mais vou ver se consigo jogar minha visualização com Velocity).
De início, eu imagino asism: criar uma classe chamada Despesa, que tem os TIPOS de despesa, daí eu vou generalizando. É essa a idéia?
Vou tentando aqui, e qualquer dúvida qto a lógica de como criar isso, eu posto melhor em outro tópico.
Agradeço a atenção e ajuda, que foram mto construtivas pra mim.