Gerar camada de serviço com hibernado
-
26-09-2019 - |
Pergunta
Eu gero .hbm.xml
Mapeamento de arquivos e .java
Arquivos do esquema DB, com ferramentas de hibernação. Minha pergunta é: isso também existe alguma opção para gerar classes de serviço? Essas são as classes em que implemento o Store (), Find (), Delete (), etc ... Métodos. Eu sei que, para C#, existem muitas soluções para gerar quase tudo. Estou procurando o mesmo, mas com Hibernate. Existe alguma?
Solução
A geração de "serviços" não faz muito sentido para mim, pois os serviços normalmente implementam a lógica de negócios (que o Hibernate não pode gerar magicamente).
Agora, se o que você quer dizer é o código de acesso a dados, isto Ferramentas de hibernação pode fazer isso. Esse é o Código Dao (.java) opção na captura do Plug -in eclipse mostrado abaixo:
TEXTO DE ALT HTTP://docs.jboss.org/tools/2.0.0.ga/hibernateTools/en/html/images/codegenexporters.png
O equivalente Tarefa de formiga é hbm2dao
.
Mas eu pessoalmente não uso esse recurso e eu iria Caminho de Duffymo.
Outras dicas
Nenhuma opção para gerar serviços.
Você deve ser capaz de escrever apenas uma interface e implementação do DAO genérico com o Hibernate.
Assim:
package persistence;
import java.io.Serializable;
import java.util.List;
public interface GenericDao<T, K extends Serializable>
{
T find(K id);
List<T> find();
List<T> find(T example);
List<T> find(String queryName, String [] paramNames, Object [] bindValues);
K save(T instance);
void update(T instance);
void delete(T instance);
}
ROO da primavera Pode ter o que você quer.
Você pode implementar a camada de acesso a dados apenas declarando interfaces e implementando -as usando proxies JDK, que chamam os métodos de hibernação. Os detalhes estão aqui - Uma camada simples de acesso a dados usando hibernato.
Eu implementei isso e funciona bem e cresceu para atender às minhas necessidades. Eu estendi os métodos add (), remover () etc.findQueryName
) e uso de genéricos, então tudo o que preciso fazer para declarar uma interface básica de acesso a dados CRUD é
public interface SomeObjectDAO extends GenericDAO<SomeObject> {
}