Quando ho iniziato a usare Hibernate, ho sentito tutta la gioia di usare un livello DAO. Inizialmente aveva senso per il mio problema: stavo per sperimentare con Hibernate e successivamente sperimentare NoSQL e / o XML per esperienza. All'epoca aveva senso
Prima di andare oltre, voglio dire che il mio attuale livello DAO non è uno "vero" livello dao. È più di un gruppo di oggetti dati supportati da interfacce e un "Controller" che genera nuovi oggetti, query e pulisce quando l'applicazione si chiude.
Ora, mentre sto riprendendo Spring, il livello DAO sta diventando sempre meno sensato. NoSQL è pulito e tutto, ma sto davvero iniziando a chiedermi se ne vale la pena. Non sono nemmeno sicuro se i miei dati sono adatti per NoSQL, funziona piuttosto bene in un database relazionale. L'orribile archivio XML sembra un ostacolo che attraverserò in seguito. Inoltre c'è un enorme numero di codice che avrei bisogno di supportare per altre opzioni di archiviazione: My custom "Controller" + una zillion Spring per implementare + altre cose che mi mancano.
Ciò che mi impedisce di estrarlo e unire i moduli core e hibernate dao è che ci sono altri progetti con un livello DAO (uno vero) con solo Spring e Hibernate. Ciò significa che hanno tutte le interfacce, tutte le classi astratte, tutta la complessità con solo questi due framework. Dato che sono appena all'inizio del mondo di Spring + Hibernate, sono riluttante ad andare contro ciò che fanno gli altri con così poca esperienza.
Domanda: i loro altri vantaggi che mi mancano con un livello DAO? E perché altri progetti hanno uno strato DAO quando usano solo un database?