2019/03/12 [@Transactional 事务处理] [SQL 获取时间 区间 [00:00:00 ~ 23:59:59]] [SpringBoot 注解包导入] [问题]

ゆき

@Transactional 事务处理

Spring中
@Transactional有5个属性:

  1. Propagation、
  2. Isolation、
  3. Rollback Rules、
  4. Timeout
  5. Read-Only

其中Propagation属性定义了Transaction的边界 — 是否使用Transaction、在Transaction已存在的情况下如何表现等。

在service类前加上@Transactional,
声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。

package com.boxin.productions.sss.common.jpa.service;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.boxin.productions.sss.common.jpa.repository.SysXLTransducerDataRepository;
import com.boxin.productions.sss.common.jpa.service.Dto.SysXLTransducerDataDto;
import com.boxin.productions.sss.common.pojo.model.SysXLTransducerDataModel;

/**
 * [类名]<br>
 * 员工信息服务接口<br><br>
 * [機能概要]<br>
 * 员工信息相关处理<br><br>
 * [変更履歴]<br>
 * 2019/02/20 ver1.00 作成<br>
 *
 * @author O_WEN
 * @version 1.00
 */
public interface SysXLTransducerDataService extends CommBaseService<SysXLTransducerDataModel, Integer, SysXLTransducerDataRepository> {

	/**
	* 按照检索条件进行 车辆内温度与gps位置查询。
	* 
	* @param vehicleRepertoryId 车辆id
	* @param deleteFlg 数据有无区分
	*/
	@Transactional
	List<SysXLTransducerDataDto> getTemperatureGPSLocation(Integer vehicleRepertoryId, Integer vehicle_repertory_flg, Integer deleteFlg);
	
	@Transactional
	SysXLTransducerDataModel getGPSLocationQueryPage(Integer vehicleId, Integer deleteFlg);
}
SQL 获取时间 区间 [00:00:00 ~ 23:59:59]

date_format( ‘"+ startTime +"’, ‘%Y-%m-%d’ ) = date_format( ‘"+ endTime +"’, ‘%Y-%m-%d’ )

问题

Failed to convert from type [java.lang.String] to type [java.util.Date] for value ‘2019-03-12’

在 controller 中任意位置加入日期转换:

@InitBinder
public void initBinder(WebDataBinder binder, WebRequest request) {
	//转换日期 注意这里的转化要和传进来的字符串的格式一直 如2015-9-9 就应该为yyyy-MM-dd
	DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));// CustomDateEditor为自定义日期编辑器
}

SpringBoot 注解包导入
// 有没有发现规律
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
--------------------------------------------------------------------------
/**
 * [类名]<br>
 * 车辆信息控制器<br><br>
 * [機能概要]<br>
 * 车辆信息WEB服务<br><br>
 * [変更履歴]<br>
 * 2019/02/19 ver1.00 作成<br>
 *
 * @author NLS_
 * @version 1.00
 */
@Api(description = "XL_车辆信息")
@Controller
@RequestMapping(value = DefaultWebMvcConfigurerAdapter.REQUSET_SYSTEM)
public class SysXLVehicleController {
	
	@Autowired
	private SysXLVehicleService sysXLVehicleService;
	@Autowired
	private SysXLTransducerDataService sysXLTransducerDataService;
	
    /**
     * 车辆信息-分页查询 <BR/>
     * 根据 车辆编号(ID)查询用户信息。
     * 
     * @param userid 用户ID
     * @param deleteFlg 消除区分
     * @return 用户信息
     */
    @ApiOperation(
		value = "车辆信息-查询", notes = "根据 车辆编号(ID) 查询车辆信息数据.	\n"
					+ "vehicleId			:车辆编号    					\n"
    				+ "licenseNumber		:车牌号      					\n"
    				+ "netWeight			:净重        						\n"
    				+ "driverName			:司机姓名  	   				\n"
					+ "driverPhone			:司机电话     					\n" 
    				+ "vehicleLength		:车长        						\n"
    				+ "vehicleWidth			:车宽        						\n"
    				+ "vehicleHeight		:车高        						\n"
    				+ "maximumLoad			:最大载重     					\n"
    				+ "seatingCapacity		:最大客载     					\n"
    				+ "createTime			:创建时间						\n" 
    				+ "updateTime			:更新时间						\n" 
    				+ "createUser			:创建者 						\n" 
    				+ "updateUser			:更新者 						\n" 
    				+ "deleteFlg			:有效标识						\n" 
    				+ "lockVer				:版本   						\n"
	    ) 
    @PostMapping(value = "/basic/sysXLPageVehicle/search.do")
    @ResponseBody
    public ResponseBodyVO<Page<SysXLVehicleVO>> sysXLVehiclePageSearch(String vehicleId, int page, int size, Integer deleteFlg) {
    	
    	//分页条件设定
		Pageable pageable = new PageRequest(page, size);
    	
    	//数据检索
		Page<SysXLVehicleModel> pageSysRoleModel = this.sysXLVehicleService.getByVehicle(SysXLUserSpecs.findByCondition(vehicleId, deleteFlg), pageable);
		
    	//返回对象创建
        ResponseBodyVO<Page<SysXLVehicleVO>> responseBodyVO = new ResponseBodyVO<>();
        
        //转换后数据返回
		responseBodyVO.setSuccessResult(new PageImpl<>(SysXLVehicleVOMapper.MAPPER.toVOList(pageSysRoleModel.getContent()),
          pageable, pageSysRoleModel.getTotalElements())); 
        
    	return responseBodyVO;
    }
  } 

猜你喜欢

转载自blog.csdn.net/yw2567/article/details/88414094