/**
*
*/
package nl.ipo.cds.dao.metadata.impl;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import nl.ipo.cds.dao.metadata.MetadataDao;
import nl.ipo.cds.domain.metadata.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* @author eshuism
* 13 jan 2012
*/
public class MetadataDaoImpl implements MetadataDao {
public EntityManager entityManager;
@PersistenceContext(unitName = "cds-metadata")
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
/* (non-Javadoc)
* @see nl.ipo.cds.dao.metadata.MetadataDao#create(nl.ipo.cds.domain.metadata.Service)
*/
@Override
@Transactional(value="transactionManagerMetadata")
public void create(Service service) {
this.entityManager.persist(service);
}
/* (non-Javadoc)
* @see nl.ipo.cds.dao.metadata.MetadataDao#getService(java.lang.Long)
*/
@Override
public Service getService(Long id) {
return this.entityManager.find(Service.class, id);
}
/* (non-Javadoc)
* @see nl.ipo.cds.dao.metadata.MetadataDao#findService(java.lang.String)
*/
@Override
public Service findService(String name) {
Query serviceQuery = null;
serviceQuery = entityManager.createQuery("from Service as service where service.name = ?1")
.setParameter(1, name);
return (Service)serviceQuery.getSingleResult();
}
/* (non-Javadoc)
* @see nl.ipo.cds.dao.metadata.MetadataDao#getAllServices()
*/
@SuppressWarnings("unchecked")
@Override
public List<Service> getAllServices() {
Query serviceQuery = null;
serviceQuery = entityManager.createQuery("from Service as service order by service.name");
return serviceQuery.getResultList();
}
/* (non-Javadoc)
* @see nl.ipo.cds.dao.metadata.MetadataDao#update(nl.ipo.cds.domain.metadata.Service)
*/
@Override
@Transactional(value="transactionManagerMetadata")
public Service update(Service service) {
return this.entityManager.merge(service);
}
}