package com.lst.lc.dao.impl;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.springframework.stereotype.Repository;
import com.lst.lc.dao.CategoryDao;
import com.lst.lc.entities.Category;
import com.lst.lc.web.bean.PartCategory;
@Repository("categoryDao")
public class CategoryDaoImpl extends BaseDao implements CategoryDao {
@Override
public void addCategory(Category category) {
save(category);
}
@Override
public Category getCategory(int id) {
return get(Category.class, id);
}
@Override
public List<Category> getAllCategories() {
return getAll("Category");
}
@Override
public void update(int categoryId, String categoryName, String description,
String enabled, int directionId) {
String hql = "update Category as category set category.categoryName = ?, category.description = ?, category.enabled = ?, directionId = ? where categoryId = ?";
Query query = query(hql);
query.setString(0, categoryName).setString(1, description)
.setString(2, enabled).setInteger(3, directionId)
.setInteger(4, categoryId).executeUpdate();
}
@Override
public void delete(int categoryId) {
String hql = "delete Category as category where category.categoryId = ?";
Query query = query(hql);
query.setInteger(0, categoryId).executeUpdate();
}
@SuppressWarnings("unchecked")
@Override
public List<Category> getEnabledCategories() {
String hqlString = "from Category as category where category.enabled=?";
Query query = query(hqlString);
query.setString(0, "1");
List<Category> ts = query.list();
return ts;
}
@Override
public List<PartCategory> getCategoriesOfDirection(int directionId) {
String hql = "from Category as category where category.direction.directionId = ?";
Query query = query(hql);
List<Category> categories = query.setInteger(0, directionId).list();
List<PartCategory> categoryBeans = new ArrayList<PartCategory>();
for(int i = 0; i < categories.size(); i++){
PartCategory categoryBean = new PartCategory();
categoryBean.setCategoryId(categories.get(i).getCategoryId());
categoryBean.setCategoryName(categories.get(i).getCategoryName());
categoryBeans.add(categoryBean);
}
return categoryBeans;
}
@Override
public List<Category> getCategories(int directionId) {
String hql = "from Category as category where category.direction.directionId = ?";
Query query = query(hql);
List<Category> categories = query.setInteger(0, directionId).list();
return categories;
}
}