Boa tarde,
Gostaria de sugestões para como mapear uma tabela que armazene apenas registro fixos no sistema.
Exemplo, uma tabela que armazene os tipos de usuário do sistema:
tipo_usuario
id | nome
1 | Administrador
2 | Colaborador
Meu sistema não irá efetuar persistência nesta tabela, apenas irá utilizar para consultar e associar a outras entidades.
Agradeço desde já.
Crie a classe mapeando para essa tabela.
Na classe, coloque as opções do @Column de update e insert como false.
Mas se lembre que o delete ainda assim será permitido.
Obrigado pela resposta jakefrog.
Não é exatamente o que procuro. Estava lendo na documentação do hibernate sobre o readonly, mas não achei nada para colocar anotação na entidade.
O mais próximo que encontrei até agora foi a anotação @Immutable adicionada na entidade, que faz com que a entidade não sofra update.
Segundo a documentação:
An immutable entity may not be updated by the application. Updates to an immutable entity will be ignored, but no exception is thrown. @Immutable must be used on root entities only
http://docs.jboss.org/hibernate/orm/4.0/javadocs/
Não fala nada sobre não permitir insert e delete, porém fiz alguns testes aqui e permite. Apenas bloqueia o update. Da para utiizar essa anotação em um atributo que seja uma lista, ai funciona da seguinte forma:
@Immutable placed on a collection makes the collection immutable, meaning additions and deletions to and from the collection are not allowed. A HibernateException is thrown in this case.
Para coleções existem também o método Collections.immutableList() se não me engano que também retorna uma lista que não poderá ser alterada.
Mas uma anotação que bloqueie algum CRUD por completo, não vi até hoje.