`

spring-data-jpa

 
阅读更多

spring-data-jpa 相当于封装的dao层。

例如:CouponRepository
import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Transactional;

import com.book511.domain.Coupon;

/**
* @author LJ
*
*/
@Transactional(readOnly = true)
public interface CouponRepository extends JpaRepository<Coupon, Long>,
JpaSpecificationExecutor<Coupon> {

/**
* 通过用户编号查找Coupon列表
*
* @author: LJ
* @Create at: 2011-11-1
* @param baseAccountId
* @return
*/
@Query("from Coupon c where c.baseAccount.id = ?1")
public List<Coupon> findByBaseAccountId(Long baseAccountId);

/**
* 通过用户名返回一个Coupon
*
* @author: LJ
* @Create at: 2011-11-1
* @param username
* @return
*/
@Query("from Coupon c where c.baseAccount.username=:username")
public Coupon getCoupon(@Param("username") String username);

}

原来的service层不改变,关心业务。
import org.springframework.transaction.annotation.Transactional;

import com.book511.domain.BaseAccount;

/**
* @author LJ
*
*/
@Transactional
public interface CouponService {


/**
* 判断用户是否已经存在图联币基本表
* @author:      LJ
* @Create at:   2011-10-31
* @param ba
* @return 如果为真,则表示已经存在;如果为否,则表示不存在。
*/
public boolean isExsitCoupon(BaseAccount ba);

/**
* 检测当前数据库中,根据用户表,查询用户是否已经有了图联币基本表。
* <p>
* 如果没有,则为其增加一个基本表,并初始化值为零。如果有,则跳过不增加。
*
* @author: LJ
* @Create at: 2011-10-31
*/
public void checkAddCoupon();

}

接口实现:
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.UUID;

import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.book511.domain.BaseAccount;
import com.book511.domain.Coupon;
import com.book511.repositories.CouponRepository;
import com.book511.service.coupon.CouponService;
import com.book511.service.um.BaseAccountService;

/**
* 图联币基本表业务层操作
*
* @author LJ
*
*/
@Service
@Transactional
public class CouponServiceImpl implements CouponService {

private static final Logger log = LoggerFactory
.getLogger(CouponServiceImpl.class);

private final static int size = 100;

@PersistenceContext
private EntityManager em;

@Inject
private CouponRepository couponRepository;


@Inject
private BaseAccountService baseAccountService;


@Override
public boolean isExsitCoupon(BaseAccount ba) {
log.debug("isExsitCoupon ");
// TODO Auto-generated method stub
Long baseAccountId = ba.getId();
List<Coupon> coupons = couponRepository.findByBaseAccountId(baseAccountId);
if (coupons.size() == 0) {
return false;
}
return true;
}

@Override
public void checkAddCoupon() {
// 查找出所有用户,并循环读取
for (int i = 0;; i++) {
List<BaseAccount> bas = baseAccountService.findPage(i, size);
if (null == bas || 0 == bas.size()) {
// 如果用户为空,则跳出循环,表示已经检出了所有用户
break;
}
for (BaseAccount ba : bas) {
// 判断是否已经拥有图联币基本表
boolean flag = isExsitCoupon(ba);
if (!flag) {
// 创建图联币基本信息
BigDecimal initValue = new BigDecimal(0.00);
Coupon coupon = new Coupon();
coupon.setBaseAccount(ba);
coupon.setAvailableAmount(initValue);
coupon.setFreezeAmount(initValue);
coupon.setTotalAmount(initValue);
coupon.setUsedCoupon(initValue);
coupon.setUuid(UUID.randomUUID().toString());
coupon.setCreated(new Date());
couponRepository.save(coupon);
}
}

}
}

}

 

分享到:
评论

相关推荐

    spring-data-jpa-2.0.9.RELEASE-API文档-中文版.zip

    赠送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...

    spring-data-jpa-2.0.9.RELEASE-API文档-中英对照版.zip

    赠送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...

    使用SpringBoot 集成Spring-data-jpa,Druid连接池,thymeleaf模板实现的一个简单网上商城项目.rar

    该项目是一个基于SpringBoot框架构建的简单网上商城应用,利用了Spring-data-jpa进行数据库操作,Druid作为数据连接池,并采用Thymeleaf模板引擎来处理前端展示。下面将详细介绍这三个核心组件及其在项目中的作用。 ...

    spring-data-jpa jar

    spring-data-jpa

    spring-data-jpa-1.4.2.RELEASE.jar

    spring-data-jpa-1.4.2.RELEASE.jar

    Spring-data-jpa常用教程.pdf

    ### Spring-data-jpa 的核心知识点解析 #### 一、Spring-data-jpa 基本介绍 Spring-data-jpa 是 Spring 家族中的一个重要成员,它主要用于简化基于 Java Persistence API (JPA) 的数据访问层(DAO)的开发工作。...

    spring-data-commons-1.7.2.RELEASEspring-data-jpa-1.5.2.RELEASE-java datajpa

    这两个模块的 jar 文件,`spring-data-commons-1.7.2.RELEASE.jar` 和 `spring-data-jpa-1.5.2.RELEASE.jar`,包含了它们各自的功能实现和依赖。在实际项目中,将这些 jar 文件添加到类路径,就可以利用 Spring Data...

    spring-data-jpa 简单实例

    **Spring Data JPA 简单实例** Spring Data JPA 是 Spring 框架的一个模块,它极大地简化了与 Java 持久层的交互,尤其是与 JPA(Java Persistence API)的集成。通过 Spring Data JPA,我们可以快速地创建数据访问...

    spring-data-jpa-example

    这个名为 "spring-data-jpa-example" 的项目是一个面向初学者的示例,旨在帮助理解并掌握 Spring Data JPA 的基本用法。 1. **Spring Data JPA 概述** - Spring Data JPA 是 Spring Framework 的一个模块,它简化...

    spring-data-jpa-1.5.2

    spring-data-jpa-1.5.2

    spring data jpa jar包

    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文档和源代码

    spring-data-jpa-examples

    在 "spring-data-jpa-examples" 这个项目中,我们将深入探讨 Spring Data JPA 的核心概念、主要特性以及如何在实际应用中使用。 一、Spring Data JPA 简介 Spring Data JPA 是基于 Spring Framework 的一个扩展,它...

    spring-data-jpa-examples-master.rar_spring data jpa

    【标题】"spring-data-jpa-examples-master.rar_spring data jpa" 提供了一个关于Spring Data JPA的实际应用示例,这是一个广泛使用的Java框架,它简化了与数据库的交互,特别是通过JPA(Java Persistence API)进行...

    spring-data-jpa-1.0.2.RELEASE

    spring-data-jpa-1.0.2.RELEASE.jar

    Spring Boot使用spring-data-jpa配置Mysql多数据源

    在Spring Boot应用中,使用`spring-data-jpa`来配置MySQL多数据源是一项常见的需求,尤其是在构建大型分布式系统时,为了实现数据隔离、负载均衡或读写分离等目的。本教程将详细介绍如何在Spring Boot项目中配置多个...

    spring-data-jpa-reference.pdf

    根据提供的文档信息,“spring-data-jpa-reference.pdf”主要围绕Spring Data JPA展开,涉及其基本概念、使用方法以及一些高级特性。以下是对该文档中提到的一些关键知识点的详细阐述: ### 一、Spring Data JPA...

    spring-data-jpa-1.4.3.RELEASE.jar

    spring-data-jpa-1.4.3.RELEASE.jar

    SpringMVC+Spring+Spring-Data-JPA整合-完整Demo

    本项目“SpringMVC+Spring+Spring-Data-JPA整合-完整Demo”旨在提供一个全面的示例,展示如何将SpringMVC、Spring和Spring Data JPA这三个关键模块集成到一个应用程序中。下面,我们将深入探讨这些技术及其整合的...

Global site tag (gtag.js) - Google Analytics