Mi piace usare Hibernate
per le normali operazioni% CRUD
.
Tuttavia, sto cercando di capire perché qualcuno dovrebbe ricorrere al suo Criteria
framework per assemblare criteri di recordset complessi anziché creare semplicemente una vista a livello di database.
es. Ecco un frammento parafrasato con cui sto lavorando:
Criteria tableCriteria = session
.createCriteria(SomeEntity.class)
.add(Restrictions.eq("someID", someID))
.add(Restrictions.gtProperty("scoreOne", "scoreTwo"))
.add(Restrictions.gt("scoreThree", scoreThreeMin))
.add(Restrictions.or(Restrictions.eq("inactive", Boolean.FALSE), Restrictions.isNull("inactive"))).addOrder(Order.asc("ordCol"))
Da una prospettiva a occhio nudo, è possibile, ma lascia che sia leggibile il discernimento di ciò che stabilisce questa definizione di filtro piuttosto che semplicemente creare una vista DB in cui queste restrizioni potrebbero essere espresse sotto forma di clausole WHERE
più semplici.
Mi manca qualcosa? C'è un vantaggio nell'usare le viste Criteria vs. DB di cui non sono a conoscenza? L'uso delle viste sembra molto più pulito. C'è un rialzo delle prestazioni rispetto ai criteri?