【发布时间】:2013-11-28 23:37:25
【问题描述】:
我正在学习RESTful Webservice。
我正在使用 Hibernate 4 和 Spring 3。我想知道我是否需要实现 REST 服务,我从 MyController 类中调用服务实现类 EmployeeServiceImpl?并从客户端层调用 REST 的 get、delete 方法?
如果使用Spring,哪个REST项目可以使用CXF或Jersey? 为 REST 服务创建 Controller 类的最佳方法是什么?
服务实现类
@Transactional
@Service(value = "empService")
public class EmployeeServiceImpl implements EmployeeService {
@Inject
EmployeeDAO employeeDAO;
@Override
public List<Emp> findAllEmployees() {
return getEmployeeDAO().findAllEmployees();
}
DAO 实现类
@Repository("empDAO")
public class EmployeeDAOImpl extends GenericDAOImpl<Emp> implements EmployeeDAO {
@PersistenceContext
private EntityManager entityManager;
@Override
public List<Emp> findAllEmployees() {
CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
cq.select(cq.from(Emp.class));
return getEntityManager().createQuery(cq).getResultList();
}
【问题讨论】:
-
这不是您问题的答案,但您可能需要认真考虑使用 Spring Data REST 和 Spring Data JPA 作为您正在做的事情的替代方案。您甚至不需要编写 DAO 实现类;您可以免费获得它们。
-
@JonathanW 如果我使用的是 Spring Data JPA,那么我需要 Hibernate 吗?
-
Hibernate 是 JPA 的实现者,因此您需要在运行时包含它。但仅此而已。
标签: java spring web-services hibernate rest