当前位置: 代码迷 >> J2EE >> 如何写jax-RS/Jersey/restful webservice里头的方法
  详细解决方案

如何写jax-RS/Jersey/restful webservice里头的方法

热度:419   发布时间:2016-04-22 00:10:16.0
怎么写jax-RS/Jersey/restful webservice里头的方法
我知道自带的一些基本方法 比如findAll()
 javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
    cq.select(cq.from(entityClass));
    return getEntityManager().createQuery(cq).getResultList();


但是仍然不明白 怎么使用where查询 比如查询学生年纪大于18的所有学生数据 或者多表连接查询 left join right join等等

我现在的做法是 因为返回的都是List<T>嘛。。。我就直接操作list里头数据了 比如删掉没用的 或者取2个list交集
------最佳解决方案--------------------
那和WebService有P关系,那叫JPA,做增删改查的。

JPA有自己的provider,用哪个provider,就用哪个provider的套路去做事,基本可以直接参照Hibernate。


------其他解决方案--------------------
这个JPA的查询结果最终是要用于webservice的? 否则貌似是没啥关联

看下

import javax.persistence.EntityManager;
import javax.persistence.Query;
import org.apache.commons.lang.StringUtils;
 
...
 
@SuppressWarnings("unchecked")
public List<Author> getAuthorsByLastName(String lastName) {
    String queryString = "SELECT a FROM Author a " +
                         "WHERE :lastName IS NULL OR LOWER(a.lastName) = :lastName";
    Query query = getEntityManager().createQuery(queryString);
 
    query.setParameter("lastName", StringUtils.lowerCase(lastName));
    return query.getResultList();
}




------其他解决方案--------------------
分层,接口层(restful session bean), 业务逻辑层, ORM层(session Bean实现,除了创建、get、更新、删除等基本方法,主要是增加业务逻辑层需要的各种查询),JPA映射关系

接口层处理输入输出对象校验和赋值,然后调用业务逻辑层处理业务动作,业务逻辑层需要的对象操作(创建、get、更新、删除、查询),在ORM层实现
  相关解决方案