com.nkapps.billing.dao.WSDaoImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.nkapps.billing.dao.WSDaoImpl.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.nkapps.billing.dao;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.joda.time.LocalDateTime;
import org.springframework.stereotype.Repository;
import com.nkapps.billing.models.WsUser;

/**
 *
 * @author nuraddin
 */
@Repository("wsDao")
public class WSDaoImpl extends AbstractDao implements WSDao {

    @Override
    public WsUser findByUsernameAndPassword(String username, String password) {
        Session session = getSession();
        Query query = session.createQuery(
                "SELECT u FROM WsUser u WHERE u.username = :username AND u.password = :password AND u.active = 1");
        query.setParameter("username", username);
        query.setParameter("password", password);
        WsUser wsUser = (WsUser) query.uniqueResult();
        session.close();
        return wsUser;
    }

    @Override
    public WsUser createWsUser(String username, String password) {
        Session session = getSession();
        Transaction transaction = session.beginTransaction();
        WsUser user = null;
        try {
            LocalDateTime dateTime = LocalDateTime.now();
            Query query = session.createQuery(
                    "UPDATE WsUser u SET u.active = 0, u.dateUpdated = :dateUpdated WHERE u.username = :username");
            query.setParameter("dateUpdated", dateTime);
            query.setParameter("username", username);
            query.executeUpdate();

            user = new WsUser();
            user.setUsername(username);
            user.setPassword(password);
            user.setType((short) 1);
            user.setActive((short) 1);
            user.setDateCreated(dateTime);
            user.setDateUpdated(dateTime);

            session.save(user);
            session.flush();
            transaction.commit();
        } catch (Exception e) {
            transaction.rollback();
        }
        session.close();
        return user;
    }

}