UserInfoRepositoryImpl.java

package com.tradecloud.repository.user;

import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import com.tradecloud.authentication.User;
import com.tradecloud.authentication.UserAddress;
import com.tradecloud.authentication.UserInfo;
import com.tradecloud.repository.base.impl.RepositoryBaseImpl;
import org.springframework.stereotype.Repository;

@Repository(value = "userInfoRepository")
public class UserInfoRepositoryImpl extends RepositoryBaseImpl<UserInfo, Object> implements UserInfoRepository {

    private static final long serialVersionUID = 1L;

    @SuppressWarnings("unchecked")
    @Override
    public List<UserInfo> findByEmail(String email) {
        Criteria searchCriteria = getSessionCustom().createCriteria(UserInfo.class);
        searchCriteria.add(Restrictions.eq("email", email));
        return searchCriteria.list();
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<UserInfo> findByFirstName(String firstName) {
        Criteria searchCriteria = getSessionCustom().createCriteria(UserInfo.class);
        searchCriteria.add(Restrictions.eq("firstname", firstName));
        return searchCriteria.list();
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<UserInfo> findByLastName(String lastName) {
        Criteria searchCriteria = getSessionCustom().createCriteria(UserInfo.class);
        searchCriteria.add(Restrictions.eq("lastname", lastName));
        return searchCriteria.list();
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<UserInfo> findByDesignation(String designation) {
        Criteria searchCriteria = getSessionCustom().createCriteria(UserInfo.class);
        searchCriteria.add(Restrictions.eq("designation", designation));
        return searchCriteria.list();
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<UserInfo> findByFax(String fax) {
        Criteria searchCriteria = getSessionCustom().createCriteria(UserInfo.class);
        searchCriteria.add(Restrictions.eq("fax", fax));
        return searchCriteria.list();
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<UserInfo> findByPhone(String phone) {
        Criteria searchCriteria = getSessionCustom().createCriteria(UserInfo.class);
        searchCriteria.add(Restrictions.eq("phone", phone));
        return searchCriteria.list();
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<UserInfo> findByTitle(String title) {
        Criteria searchCriteria = getSessionCustom().createCriteria(UserInfo.class);
        searchCriteria.add(Restrictions.eq("title", title));
        return searchCriteria.list();
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<UserInfo> findByUserAddress(UserAddress userAddress) {
        Criteria searchCriteria = getSessionCustom().createCriteria(UserInfo.class);
        searchCriteria.createCriteria("useraddress").add(Restrictions.eq("id", userAddress.getId()));
        return searchCriteria.list();
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<UserInfo> findByUser(User user) {
        Criteria searchCriteria = getSessionCustom().createCriteria(UserInfo.class);
        searchCriteria.createCriteria("users").add(Restrictions.eq("id", user.getId()));
        return searchCriteria.list();
    }
}