Package com.itedge.solutionmanager.service.domain.impl

Source Code of com.itedge.solutionmanager.service.domain.impl.EmployeeService

package com.itedge.solutionmanager.service.domain.impl;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.itedge.infrastructure.service.domain.ISearchableEntityService;
import com.itedge.infrastructure.service.domain.impl.AbstractJpaEntityService;
import com.itedge.solutionmanager.domain.impl.Employee;

@Service
public class EmployeeService extends AbstractJpaEntityService<Employee>
  implements ISearchableEntityService<Employee> {

  @PersistenceContext
    transient EntityManager entityManager;

  @Override
  protected EntityManager getEntityManager() {
    return this.entityManager;
  }

  @Override
  protected Class<Employee> getClassReference() {
    return Employee.class;
  }
 
  @Override
  @Transactional
    public Employee merge(Employee emp) {
    Employee merged = null;
       /* Update version property, in case employee was changed in meantime. */   
    synchronized(this) {
      Employee attached = this.entityManager.find(Employee.class, emp.getId());
      emp.setVersion(attached.getVersion());
      merged = this.entityManager.merge(emp);
    }
    this.entityManager.flush();
        return merged;
    }
 
  //TODO: rewrite to use CriteriaQuery
  @Override
  public List<Employee> findEntitiesByCriteria(Employee searchEmployee, Integer maxResults) { 
    TypedQuery<Employee> query =
      this.entityManager.createQuery("select o from Employee o where upper(o.username) like upper(:searchName)",
          Employee.class).setParameter("searchName", '%'+searchEmployee.getUsername()+'%');
    if (maxResults != null) {
      query.setMaxResults(maxResults);
    }
    return query.getResultList();
  }

}
TOP

Related Classes of com.itedge.solutionmanager.service.domain.impl.EmployeeService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.