使用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);
}
}
相关推荐
赠送jar包:spring-data-jpa-2.0.9.RELEASE.jar; 赠送原API文档:spring-data-jpa-2.0.9.RELEASE-javadoc.jar; 赠送源代码:spring-data-jpa-2.0.9.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-data-jpa...
赠送jar包:spring-data-jpa-2.0.9.RELEASE.jar; 赠送原API文档:spring-data-jpa-2.0.9.RELEASE-javadoc.jar; 赠送源代码:spring-data-jpa-2.0.9.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-data-jpa...
这两个模块的 jar 文件,`spring-data-commons-1.7.2.RELEASE.jar` 和 `spring-data-jpa-1.5.2.RELEASE.jar`,包含了它们各自的功能实现和依赖。在实际项目中,将这些 jar 文件添加到类路径,就可以利用 Spring Data...
java运行依赖jar包
spring-data-jpa
java运行依赖jar包
### Spring-data-jpa 的核心知识点解析 #### 一、Spring-data-jpa 基本介绍 Spring-data-jpa 是 Spring 家族中的一个重要成员,它主要用于简化基于 Java Persistence API (JPA) 的数据访问层(DAO)的开发工作。...
在Spring Boot项目中,可以通过starters来快速引入相关依赖,例如使用`spring-boot-starter-data-jpa` starter,开发者能够直接获得一个配置好的数据访问环境。 Spring Data JPA 的核心概念之一是Repositories,它...
spring data jpa最新版本1.8.0,包含了spring-data-jpa-1.8.0.RELEASE.jar,spring-data-jpa-1.8.0.RELEASE-javadoc.jar以及 spring-data-jpa-1.8.0.RELEASE-sources.jar文档和源代码
该项目是一个基于SpringBoot框架构建的简单网上商城应用,利用了Spring-data-jpa进行数据库操作,Druid作为数据连接池,并采用Thymeleaf模板引擎来处理前端展示。下面将详细介绍这三个核心组件及其在项目中的作用。 ...
java运行依赖jar包
spring-data-jpa-1.4.2.RELEASE.jar
java运行依赖jar包
java运行依赖jar包
<artifactId>spring-boot-starter-data-jpa <!-- 数据库驱动,例如 MySQL --> <groupId>mysql <artifactId>mysql-connector-java ``` 还需要在 `application.properties` 中配置数据库连接信息: ``...
spring-data-jpa-1.5.2
这个名为 "spring-data-jpa-example" 的项目是一个面向初学者的示例,旨在帮助理解并掌握 Spring Data JPA 的基本用法。 1. **Spring Data JPA 概述** - Spring Data JPA 是 Spring Framework 的一个模块,它简化...
spring-data-jpa-1.0.2.RELEASE.jar
spring-data-jpa-extra可以解决三个问题: 动态本地查询支持,例如mybatis 返回类型可以是任何东西没有代码,只有sql例子首先添加ComponentScan 通过java bean @ComponentScan ({ " com.slyak " , " your.base....