package no.dusken.aranea.export; import no.dusken.aranea.export.model.ExportGallery; import no.dusken.aranea.plugin.galleryplugin.model.Gallery; import no.dusken.common.dao.GenericDao; import org.codehaus.jackson.JsonEncoding; import org.codehaus.jackson.JsonGenerator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import java.io.IOException; import java.io.OutputStream; @Component public class GalleryExporter extends AbstractExporter{ @Autowired private GenericDao genericDao; @Override public void exportToJson(OutputStream outputStream) throws IOException { CriteriaBuilder cb = genericDao.getCriteriaBuilder(); CriteriaQuery<Gallery> query = cb.createQuery(Gallery.class); //Root<Gallery> from = query.from(Gallery.class); //CriteriaQuery<Gallery> select = query.select(from); TypedQuery<Gallery> typedQuery = genericDao.getTypedQuery(query); JsonGenerator jg = jsonFactory.createJsonGenerator(outputStream, JsonEncoding.UTF8); jg.writeStartArray(); for(Gallery gallery : typedQuery.getResultList()){ jg.writeObject(new ExportGallery(gallery)); } jg.writeEndArray(); } @Override public String getName() { return "gallery"; } }