Executando verificação de segurança...
2

Massa, obrigado pela ajuda! Seguindo o seu exemplo, pensei em utilizar um listener na classe user, para que todas as classes associadas à ele sejam deletadas antes de sua exclusão. Ficaria mais ou menos assim:

    @EntityListeners(UserListener.class)
    @SQLDelete("UPDATE User SET deleted = TRUE WHERE id = ?")
    @Where(clause = "deleted = FALSE")
    public class User {
        @OneToMany(mappedBy = "user", fetch = EAGER, cascade=ALL, orphanRemoval = true)
        private List usernotes;
    }
    public class UserListener {
        
        @PreRemove
        private void beforeDelete(User user) {
            noteRepo.deleteByUserId(user.getId());
        }
    }

Assim, o método de deletar um usuário não fica poluído com vários repositórios ou serviços sendo chamados

Carregando publicação patrocinada...