public Set<DataProvider> getAllDataProviders() throws Exception {
final Set<DataProvider> results = new HashSet<DataProvider>();
new HibernateTxFragment() {
protected void txFragment(Session session) throws Exception {
FlushMode flushMode = session.getFlushMode();
session.setFlushMode(FlushMode.COMMIT);
Query query = session.createQuery("from " + DataProviderImpl.class.getName() + " order by id");
query.setCacheable(true);
results.addAll(query.list());
session.setFlushMode(flushMode);