Duvida sobre argumentos/retornos da camada de serviço (@Service/@Stateless/etc)

Bom dia amigos.

Temos uma aplicacao que eh dividida naquele famoso modelo anemico onde a camada de servico (@service do spring) faz chamadas ao banco de dados via DAO (@Repository) e esta camada de servico eh injetada nos @controlers .

os argumentos sao passados via um pojo que criamos chamado Request … nele temos todos os dados que vieram do UI e deverao ser persistidos/selecionados no banco (precisamos deste objeto pois a aplicacao eh multitenancy e usamos um framework interno que precisa de parametros especificos)

como utilizamos este objeto Request para passar parametros, minha interface de servico generica ficou assim:

public interface AbstractServiceInterface<E, P> {
Request<E, P> select(Request<E, P> req);
Request<E, P> insertOrUpdate(Request<E, P> req);
Request<E, P> delete(Request<E, P> req);
}

minha duvida eh:

Se eu jah estou passando o objeto Request com todas as referencias aos objetos da sessao e este objeto chega ate o DAO, preciso retornar de novo o Request? (jah que o resultado de um select(req) estaria disponivel na propria variavel req dps da chamada)

Que tipo de retorno e argumentos vcs usam na camada de servico e no DAO?

Eu pensei em retornar o Request pensando em chamadas remotas… faz sentido?

fui claro rs?

desde jah, muito obrigado

Uma desvantagem de usar um objeto genérico como contrato dos seus métodos é que você perde a verificação de tipos em tempo de compilação. Se você não vai usar tipagem explícita, por que usar uma linguagem fortemente tipada e com tipagem estática como Java?

O fato do seu modelo ser “anêmico” não é necessariamente um problema. Existem desvantagens comumente associadas a um modelo anêmico, porém você deve avaliar se essas desvantagens se aplicam ao seu contexto e, se são aplicáveis, o quanto elas impactam a sua realidade e se o impacto justifica uma mudança pra um domínio rico.

Não siga cegamente, pense criticamente.