ゆき
@Transactional 事务处理
Spring中
@Transactional有5个属性:
- Propagation、
- Isolation、
- Rollback Rules、
- Timeout
- 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;
}
}