Sem ver o código fica difícil dar mais detalhes, mas enfim, não consigo ver a dificuldade.

Se não quer trazer os registros deletados, precisa de um WHERE deleted_at IS NULL. Se quer só os deletados, WHERE deleted_at IS NOT NULL (ou só os que foram deletados depois de determinada data, WHERE deleted_at > data e assim por diante). E se quiser todos (deletados e não deletados), não precisa do WHERE.

Mesmo se mudar de linguagem/framework/lib/ferramenta, vai precisar fazer isso, não tem como escapar. Mas sinceramente, não acho que isso justifica mudar de linguagem. É uma situação relativamente comum, que a maioria dos - senão todos os - frameworks conseguem tratar sem problemas.

Por fim, não sei se é exatamente o seu caso, mas em uma busca rápida encontrei isso, talvez ajude.


Na verdade eu voltaria alguns passos e analisaria se vc precisa mesmo de soft delete. Pois nem sempre é necessário: como tudo em computação, tem prós e contras, então o ideal é primeiro avaliar se precisa mesmo (caso já tenha feito essa análise, pode ignorar este parágrafo).

Compreendo como fazer o Where para isso, o problema é deixar isso genérico e escalável, já que colocar a clausula Where em todos os meus selects pode ser trabalhoso e até perigoso caso eu esqueça de colocar em algum.

A anotação @WHERE do hibernate aplica uma clausula where para toda query que envolve a classe que recebeu a anotação. Não queria usar ela pois é muito difícil ou até impossível realizar uma query sem o próprio hibernate inserir a clausula, fazendo com que eu NUNCA consiga realizar uma query para buscar os registros deletados

Já analisei meu caso e realmente acho melhor usar o soft delete

Uma opção é, em vez do soft delete, usar uma tabela de histórico. Aí quando deletar, na verdade você move o registro pro histórico. Ou seja, lá só vai ter os deletados, e na tabela original os não deletados. Ou se quiser continuar com soft delete, simplesmente não use a anotação e lembre de colocar um where em todas as queries. Não tem jeito, e assim como disseram acima, não sei qual é o problema. É tão comum isso...
obrigado, realmente acho que não tem muitas saídas