spring-data-jpa需要特别弥补的地方
来源:互联网 发布:360软件认证平台 编辑:程序博客网 时间:2024/05/22 11:57
使用spring-data-jpa需要特别弥补的地方,这点mapper处理比较好
//弥补jpa单实体的不足用不同的工厂类操作复杂sql,mapper这点比较好在处理了单实体查询直接不用daoimpl下,即使用
xml进行复杂查询也不需要daoimpl
jpa 复杂操作弥补:
public class TbPowerGroupBeanDaoImpl implements ITbPowerGroupBeanDao {
@Autowired
public ESteelSqlSessionTemplate sqlSessionTemplate;
@Override
public List<Map<String,Object>> getBigPowerMenu(Map<String, Object> param) {
// TODO Auto-generated method stub
return sqlSessionTemplate.selectList("account.getBigPowerMenu", param);
}
}
public class UserBListDaoImpl implements UserBListDaoHelper{
@PersistenceContext
private EntityManager em;
@Override
public List<CusFirmBean> findCustomerExceptOne(Map<String, Object> paraMap) {
StringBuffer sb = new StringBuffer();
sb.append(" select distinct t.CUSTOMER_ID,t.CUSTOMER_KEY,t.CUSTOMER_NAME ");
sb.append(" from tb_user_blist t1 left join tb_cus_firm t on(t1.blist_customer_key=t.customer_key) ");
sb.append(" left join TB_USER_BLIST_LABEL t2 on(t1.blist_id=t2.blist_id) left join TB_USER_LABEL t3 on(t2.label_id=t3.label_id) ");
sb.append(" where t1.CUSTOMER_KEY=:CUSTOMER_KEY ");
if (!StringUtils.isNullObj(paraMap.get("CUSTOMER_NAME"))) {
sb.append(" and t.CUSTOMER_NAME like '%'||:CUSTOMER_NAME||'%'");
}
if (!StringUtils.isNullObj(paraMap.get("CUSTOMER_SEARCHKEY"))) {
sb.append(" and t.CUSTOMER_ID = :CUSTOMER_SEARCHKEY ");
}
if (!StringUtils.isNullObj(paraMap.get("label_name"))) {
sb.append(" and t3.label_name =:LABEL_NAME ");
}
if (!StringUtils.isNullObj(paraMap.get("selectedCustomerKey"))
&¶Map.get("selectedCustomerKey").toString()!="[]") {
sb.append(" and t.CUSTOMER_KEY not in (:selectedCustomerKey)");
}
sb.append(" and t.CUS_TRADE_KIND = 'A'");
Query query = em.createNativeQuery(sb.toString());
query.setParameter("CUSTOMER_KEY", paraMap.get("CUSTOMER_KEY"));
if (!StringUtils.isNullObj(paraMap.get("CUSTOMER_NAME"))) {
query.setParameter("CUSTOMER_NAME", paraMap.get("CUSTOMER_NAME"));
}
if (!StringUtils.isNullObj(paraMap.get("CUSTOMER_SEARCHKEY"))) {
query.setParameter("CUSTOMER_SEARCHKEY", ((String) paraMap.get("CUSTOMER_SEARCHKEY")).toUpperCase());
}
if (!StringUtils.isNullObj(paraMap.get("label_name"))) {
query.setParameter("LABEL_NAME", paraMap.get("label_name"));
}
if (!StringUtils.isNullObj(paraMap.get("selectedCustomerKey"))
&¶Map.get("selectedCustomerKey").toString()!="[]") {
query.setParameter("selectedCustomerKey", paraMap.get("selectedCustomerKey"));
}
List<Object[]> list = query.getResultList();
List<CusFirmBean> rstList = new ArrayList<CusFirmBean> ();
if(list!=null && list.size()>0) {
for(Object[] obj : list) {
CusFirmBean cus = new CusFirmBean ();
cus.setCustomerId(obj[0]!=null?obj[0].toString():"");
cus.setCustomerKey(NumberUtils.toLong(obj[1].toString()));
cus.setCustomerName(obj[2].toString());
rstList.add(cus);
}
}
return rstList;
}
}
jpa dao层直接操作(只限于单实体):
@Component("basLkpService")
public class BasLkpServiceImpl implements BasLkpService {
@Autowired
public BasAreaDao basAreaDao;
@Autowired
public BasLkpDao basLkpDao;
@Override
public List<BasAreaBean> getAllProvince() {
return basAreaDao.findByAreaLevel("1");
}
@Override
public BasLkpBean getTbBasLkpByBusinessTypeLookupType(String businessType, String priceType) {
BasLkpBeanPK pk=new BasLkpBeanPK();
pk.setBusinessType(businessType);
pk.setLookupType(priceType);
return basLkpDao.findOne(pk);
}
}
- spring-data-jpa需要特别弥补的地方
- matplotlib安装(特别需要注意的地方)
- jpa和spring data jpa的理解
- spring data jpa 与 jpa的区别
- Spring data jpa的OpenEntityManagerInViewFilter
- spring-data-jpa的使用
- spring data jpa 的坑
- spring data jpa的使用
- Spring-Data-Jpa的使用
- spring data jpa的使用
- spring data jpa 的配置
- spring data jpa的使用
- Spring data jpa 的 findBy...
- spring data jpa的使用
- Spring Data JPA的研究
- JPA性能调优会需要特别注意的2点
- spring 、jpa、classpath几个注意的地方
- Symbian系统上C工程师需要特别注意的地方
- java 实现搜索附近人功能
- js插件
- Nature:深度学习的现在和未来:DeepLearning、无监督学习、NLP
- 解剖angularjs在代码中改变了 model 的值,view 却没有更新原因
- LM336、LM317
- spring-data-jpa需要特别弥补的地方
- String类之多种拷贝
- BZOJ 2440 完全平方数 (容斥原理+莫比乌斯函数)
- java—运算符,循环结构
- form表单提交中文乱码问题,dwz ModelAndView跳转form中有中文参数乱码
- 判断当天是否为周末
- SVN
- 图片写到页面上,还是写到浏览器上都是文件--》流--》字节转化方法
- SQL系列(一)SELECT与表达式的日常使用