Domanda

I generare file di mapping .hbm.xml e file .java dallo schema DB, con Hibernate Tools. La mia domanda è, che c'è qualche possibilità, per generare classi di servizio anche? Queste sono le classi in cui ho implementare il negozio (), find (), delete (), ecc ... metodi. So che per C # ci sono molte soluzioni per la generazione di quasi tutto. Sto cercando la stessa, ma con Hibernate. C'è qualche?

È stato utile?

Soluzione

Generazione "servizi" non ha molto senso per me, come i servizi di solito implementano la logica di business (che Hibernate non può generare magicamente).

Ora, se quello che vuoi dire è il codice di accesso ai dati per esempio DAO (che espongono e di attuazione metodi CRUD e cercatori), allora la Hibernate Tools può farlo. Questo è il codice DAO (.java) opzione sulla cattura del plug-in Eclipse illustrato di seguito:

alt text http: / /docs.jboss.org/tools/2.0.0.GA/hibernatetools/en/html/images/codegenexporters.png

L'equivalente Ant Task è hbm2dao.

Ma io personalmente non utilizzare questa funzione e mi piacerebbe andare duffymo di modo .

Altri suggerimenti

No opzione per generare servizi.

Si dovrebbe essere in grado di scrivere una sola interfaccia DAO generico e implementazione con Hibernate.

In questo modo:

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);
}

Spring Roo potrebbe avere quello che vuoi.

È possibile implementare il livello di accesso ai dati da parte di interfacce appena dichiarano, e avendo questi implementato utilizzando proxy JDK, che quindi chiamare i metodi di Hibernate. I dettagli sono qui - livello di accesso Un semplice dati utilizzando hibernate

.

Ho implementato questa e funziona bene ed è cresciuto fino a soddisfare le mie esigenze. Ho esteso l'add (), remove () etc .. metodi a quesiti anche incude nome (findQueryName) e l'uso dei farmaci generici, in modo che tutti bisogno che fare per dichiarare un'interfaccia di base di accesso ai dati CRUD è

   public interface SomeObjectDAO extends GenericDAO<SomeObject> {
   }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top