org.openmrs.module.ugandaemrsync.api.dao.UgandaEMRSyncDao.java Source code

Java tutorial

Introduction

Here is the source code for org.openmrs.module.ugandaemrsync.api.dao.UgandaEMRSyncDao.java

Source

/**
 * This Source Code Form is subject to the terms of the Mozilla Public License,
 * v. 2.0. If a copy of the MPL was not distributed with this file, You can
 * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under
 * the terms of the Healthcare Disclaimer located at http://openmrs.org/license.
 * <p>
 * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS
 * graphic logo is a trademark of OpenMRS Inc.
 */
package org.openmrs.module.ugandaemrsync.api.dao;

import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.hibernate.type.StringType;
import org.openmrs.api.context.Context;
import org.openmrs.api.db.hibernate.DbSession;
import org.openmrs.api.db.hibernate.DbSessionFactory;
import org.openmrs.module.ugandaemrsync.Item;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository("ugandaemrsync.UgandaEMRSyncDao")
public class UgandaEMRSyncDao {

    @Autowired
    DbSessionFactory sessionFactory;

    private DbSession getSession() {
        return sessionFactory.getCurrentSession();
    }

    public Item getItemByUuid(String uuid) {
        return (Item) getSession().createCriteria(Item.class).add(Restrictions.eq("uuid", uuid)).uniqueResult();
    }

    public Item saveItem(Item item) {
        getSession().saveOrUpdate(item);
        return item;
    }

    public List getDatabaseRecord(String query) {
        SQLQuery sqlQuery = getSession().createSQLQuery(query);
        return sqlQuery.list();
    }

    public List getFinalResults(List<String> columns, String finalQuery) {
        SQLQuery sqlQuery = getSession().createSQLQuery(finalQuery);
        for (String column : columns) {
            sqlQuery.addScalar(column, StringType.INSTANCE);
        }
        return sqlQuery.list();
    }

}