Crie sua própria classe de sessão herdando de
Session e substituir o delete() método com sua própria lógica (para aquelas classes que requerem logical delete ), voltando para a implementação padrão para os outros objetos. Se você usa criador de sessões
ou fábrica semelhante, você pode fornecer sua classe no class_ parâmetro também. Espero que isso responda sua pergunta. Mas, tendo dito/escrito isso, há MUITO MAIS para a exclusão lógica especialmente em termos de
Referential Integrity , que se pode escrever uma série de artigos sobre isso.