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 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了