xs__xb 2021-04-30 00:12 采纳率: 62.5%
浏览 76
已结题

springboot添加功能不能实现自动创建时间不报错但就是自动创建不了

实体类:

import javax.persistence.Table;
import javax.validation.constraints.NotNull;

import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import org.springframework.format.annotation.DateTimeFormat;


import lombok.Data;
@Data
@Entity
@Table
@EntityListeners(AuditingEntityListener.class)
public class Users {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id; // 用户编号UUID
    @NotNull
    @Column(unique = true,name = "loginname",nullable = false)
    private String loginName; // 登录名
    @Column(unique = true, name = "password",length = 8)
    private String password; // 密码
    @Column(name = "islockout",columnDefinition = "tinyint default 0")
    private int isLockOut; // 是否锁定(0表示未锁定,1表示锁定)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @CreatedDate
    @Column(name = "createtime")
    private Date createTime; // 账号创立时间
    @Column(name = "lastlogintime")
    private Date lastLoginTime; // 最后一次登录时间
    @Column(name = "locktime")
    private Date lockTime; // 被锁定时间
    @Column(name = "psdwrongtime",columnDefinition = "tinyint default 0")
    private Integer psdWrongTime; // 密码错误次数
    @Column(name = "protectemail")
    private String protectEmail; // 密保邮箱
    @Column(unique = true,length = 11,name="protectmtel")
    private String protectMTel; // 密保手机号
}

service接口类:

package com.sxd.crm.service;

import java.util.Map;

import com.sxd.crm.dto.UsersDto;
import com.sxd.crm.model.Users;

public interface IUsersService {
        //根据条件查询
        Map<String, Object> findByCondition(UsersDto dto);
        
        //锁定用户
        void lockUser(int id);
        
        //锁定用户
        void lockUsers(int id);
        
        //添加用户
        void addUser(Users users);
        
        //删除用户
        void delUser(int id);
}

service实现类:

package com.sxd.crm.service;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.transaction.Transactional;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;

import com.sxd.crm.dao.IUsersDao;
import com.sxd.crm.dto.UsersDto;
import com.sxd.crm.model.Users;

@Service
@Transactional
public class UsersService implements IUsersService{
    @Resource
    private IUsersDao usersdao;

    @Override
    public Map<String, Object> findByCondition(UsersDto dto) {
        Map<String, Object> map=new HashMap<String, Object>();
        Pageable pageable = PageRequest.of(dto.getPage()-1, dto.getSize(), Sort.by(Direction.DESC, "lastLoginTime"));
        Page<Users> page = usersdao.findAll(getWhereClause(dto), pageable);
        map.put("code", 0);
        map.put("count", usersdao.count(getWhereClause(dto)));
        map.put("msg", "查询成功");
        map.put("data",page.getContent());
        return map;
    }
    
    private Specification<Users> getWhereClause(UsersDto dto){
        return new Specification<Users>() {

            @Override
            public Predicate toPredicate(Root<Users> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
                List<Predicate> list=new ArrayList<Predicate>();
                if(dto.getPassword()!=null&&""!=dto.getPassword()) {
                    list.add(criteriaBuilder.equal(root.get("Password").as(String.class), dto.getPassword()));
                }
                if(dto.getLoginName()!=null&&""!=dto.getLoginName()) {//登录名
                    list.add(criteriaBuilder.like(root.get("LoginName").as(String.class), "%"+dto.getLoginName()+"%"));
                }
                if(dto.getStartCreateTime()!=null) {
                    list.add(criteriaBuilder.greaterThanOrEqualTo(root.get("CreateTime").as(Date.class), dto.getStartCreateTime()));
                }
                if(dto.getEndCreateTime()!=null) {
                    list.add(criteriaBuilder.lessThanOrEqualTo(root.get("CreateTime").as(Date.class), dto.getEndCreateTime()));
                }
                if(dto.getIsLockOut()>0) {
                    list.add(criteriaBuilder.equal(root.get("IsLockout").as(Integer.class), dto.getIsLockOut()));
                }
                Predicate[] pre = new Predicate[list.size()];
                return query.where(list.toArray(pre)).getRestriction();
            }
        };
    }

    @Override
    public void lockUser(int id) {
        usersdao.lockUser(id);
        
    }

    @Override
    public void lockUsers(int id) {
        usersdao.lockUsers(id);
        
    }

    @Override
    public void addUser(Users users) {
        usersdao.save(users);
    }

    @Override
    public void delUser(int id) {
        usersdao.deleteById(id);
    }

}

controller:

package com.sxd.crm.controller;

import java.util.Map;

import javax.annotation.Resource;

import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.sxd.crm.dao.IUsersDao;
import com.sxd.crm.dto.UsersDto;
import com.sxd.crm.model.Users;
import com.sxd.crm.service.IUsersService;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@Api(tags = "用户管理模块")
@RestController
@RequestMapping("/users")
public class UsersController {
    @Resource
    private IUsersService usersservice;
    @Resource
    private IUsersDao usersdao;
    
    @ApiOperation(value = "用户查询",notes = "用户条件查询")
    @PostMapping("/findByCondition")
    public Map<String, Object> findByCondition(UsersDto dto){
        return usersservice.findByCondition(dto);
    }

    @ApiOperation(value = "锁定用户",notes = "锁定用户")
    @PostMapping("/lockUser")
    public void lockUser(int id) {
        usersservice.lockUser(id);
    }
    
    @ApiOperation(value = "解锁用户",notes = "解锁用户")
    @PostMapping("/lockUsers")
    public void lockUsers(int id) {
        usersservice.lockUsers(id);
    }

    @ApiOperation(value = "注册账号",notes = "注册账号")
    @PostMapping(value = "/addUser",produces = "application/json;charset=UTF-8")
    public void addUser(Users users) {
        usersservice.addUser(users);
    }
    
    @ApiOperation(value = "删除账号",notes = "删除账号")
    @DeleteMapping("/delUser")
    public void delUser(int id) {
        usersservice.delUser(id);
    }
}

  • 写回答

1条回答 默认 最新

  • BCS-点心 2021-04-30 09:18
    关注

    在spring jpa中,支持在字段或者方法上进行注解@CreatedDate@CreatedBy@LastModifiedDate@LastModifiedBy,从字面意思可以很清楚的了解,这几个注解的用处。

    • @CreatedDate
      表示该字段为创建时间时间字段,在这个实体被insert的时候,会设置值
    • @CreatedBy
      表示该字段为创建人,在这个实体被insert的时候,会设置值

    • @LastModifiedDate@LastModifiedBy同理。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月9日
  • 已采纳回答 11月1日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。