Olá pessoal!
Tenho uma dúvida com relação a melhor forma de tratar uma regra de negócio, para os que são mais experientes nisso.
Possuo uma entidade chamada EMPRESA, e outra PROJETO. Relacionamento OneToMany do lado de Empresa, ou seja, uma Empresa para muitos Projeto. No caso da CRUD da aplicação, o método DELETE "não deveria existir". Ao menos não de fácil acesso, caso qualquer usuário possa deletar uma empresa, e, com isso, todos os projetos (Cascade.type=ALL).
De qualquer maneira, a dúvida é a seguinte: tenho alguns xhtml que apresentam todos os projetos em uma DATATABLE, mas quero que o usuário possa "deletar" o projeto se quiser. Mas esse deletar deve simplesmente retirar o projeto da visualização dessa DATATABLE, e não deletá-lo do banco. Pensei em fazer da seguinte forma: criar um atributo Enum chamado "situação" para PROJETO, com os tipos "ATIVO" e "INATIVO", e alterar o método de listar os projetos da DAO, utilizando um CriteriaQuery filtrando somente os projetos cujo enum seja "ATIVO", e aí retornar a lista para o DATATABLE do xhtml. Penso que essa abordagem é mais segura que listar todos os resultados de PROJETO, e fazer um filtro pela DATATABLE, correto?
Qual a opinião de vocês?