package rocks.inspectit.server.dao.impl;
import java.util.List;
import java.util.Map;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
import org.springframework.stereotype.Repository;
import rocks.inspectit.server.dao.MethodSensorTypeIdentDao;
import rocks.inspectit.shared.all.cmr.model.MethodSensorTypeIdent;
/**
* The default implementation of the {@link MethodSensorTypeIdentDao} interface by using the Entity
* manager.
*
* @author Patrice Bouillet
*
*/
@Repository
public class MethodSensorTypeIdentDaoImpl extends AbstractJpaDao<MethodSensorTypeIdent> implements MethodSensorTypeIdentDao {
/**
* Default constructor.
*/
public MethodSensorTypeIdentDaoImpl() {
super(MethodSensorTypeIdent.class);
}
/**
* {@inheritDoc}
*/
@Override
public void saveOrUpdate(MethodSensorTypeIdent methodSensorTypeIdent) {
// we save if id is not set, otherwise merge
if (null == methodSensorTypeIdent.getId()) {
super.create(methodSensorTypeIdent);
} else {
super.update(methodSensorTypeIdent);
}
}
@Override
public List<MethodSensorTypeIdent> findAll() {
return getEntityManager().createNamedQuery(MethodSensorTypeIdent.FIND_ALL, MethodSensorTypeIdent.class).getResultList();
}
/**
* {@inheritDoc}
*/
@Override
public List<Long> findIdByClassNameAndPlatformId(String fullyQualifiedClassName, long platformId) {
TypedQuery<Long> query = getEntityManager().createNamedQuery(MethodSensorTypeIdent.FIND_ID_BY_CLASS_AND_PLATFORM_ID, Long.class);
query.setParameter("fullyQualifiedClassName", fullyQualifiedClassName);
query.setParameter("platformIdent", platformId);
return query.getResultList();
}
/**
* {@inheritDoc}
*/
@Override
public void updateParameters(Long id, Map<String, Object> parameters) {
Query query = getEntityManager().createNamedQuery(MethodSensorTypeIdent.UPDATE_PARAMETERS);
query.setParameter("id", id);
query.setParameter("parameters", parameters);
query.executeUpdate();
}
}