Skip to content

Instantly share code, notes, and snippets.

@bytestree bytestree/Employee.java
Last active May 7, 2016

Embed
What would you like to do?
Generic DAO in Hibernate - EmployeeDao.java using GeneticDao.java
package com.bytestree.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "employee")
public class Employee implements java.io.Serializable {
private static final long serialVersionUID = 4910225916550731446L;
private Long id;
private String firstname;
private String lastname;
private String designation;
private Integer salary;
public Employee() {
}
public Employee(Long id) {
this.id = id;
}
public Employee(Long id, String firstname, String lastname, String designation, Integer salary) {
this.id = id;
this.firstname = firstname;
this.lastname = lastname;
this.designation = designation;
this.salary = salary;
}
public Employee(String firstname, String lastname, String designation, Integer salary) {
this.firstname = firstname;
this.lastname = lastname;
this.designation = designation;
this.salary = salary;
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name = "firstname", length = 50)
public String getFirstname() {
return this.firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
@Column(name = "lastname", length = 50)
public String getLastname() {
return this.lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
@Column(name = "designation", length = 50)
public String getDesignation() {
return this.designation;
}
public void setDesignation(String designation) {
this.designation = designation;
}
@Column(name = "salary")
public Integer getSalary() {
return this.salary;
}
public void setSalary(Integer salary) {
this.salary = salary;
}
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("Id: ").append(this.id).append(", firstName: ").append(this.firstname).append(", lastName: ")
.append(this.lastname).append(", Designation: ").append(this.designation).append(", Salary: ")
.append(this.salary);
return sb.toString();
}
}
package com.bytestree.dao;
import com.bytestree.model.Employee;
public interface EmployeeDao extends GenericDao<Employee> {
Integer getMaxSalary();
}
package com.bytestree.dao;
import org.hibernate.Criteria;
import org.hibernate.criterion.Projections;
import org.springframework.stereotype.Repository;
import com.bytestree.model.Employee;
@Repository
public class EmployeeDaoImpl extends AbstractGenericDao<Employee> implements EmployeeDao {
@Override
public Integer getMaxSalary() {
Criteria criteria = getSession().createCriteria(Employee.class).setProjection(Projections.max("salary"));
Integer maxSalary = (Integer) criteria.uniqueResult();
return maxSalary;
}
}
package com.bytestree.service;
import java.util.List;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.bytestree.dao.EmployeeDao;
import com.bytestree.model.Employee;
@Service
@Transactional(readOnly = true)
public class EmployeeServiceImpl implements EmployeeService {
final static Logger logger = Logger.getLogger(EmployeeServiceImpl.class);
@Autowired
EmployeeDao employeeDao;
public List<Employee> getAllEmployees() {
logger.debug("Getting all employees...");
return employeeDao.findAll();
}
/**
* Add new employee if it in not already exists
*
* @param employee: Employee to add
*/
@Override
@Transactional(readOnly = false)
public void addNewEmployee(Employee employee) {
Employee emp = new Employee();
emp.setFirstname(employee.getFirstname());
emp.setLastname(employee.getLastname());
List<Employee> emplList = employeeDao.findAllByExample(emp);
if (emplList == null || emplList.isEmpty()) {
Long id = (Long) employeeDao.save(employee);
logger.debug("Id of new Employee " + id);
} else {
logger.debug("Employee " + emp + " already exists");
}
}
/**
* Return maximum salary given to any employee
*
* @return max salary
*/
@Override
public Integer getMaxSalary() {
return employeeDao.getMaxSalary();
}
}
@bytestree

This comment has been minimized.

Copy link
Owner Author

commented May 7, 2016

Refer Generic DAO in Hibernate for complete example

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.