Jpa-操作mongodb
pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
yml配置
spring:
data:
mongodb:
# uri: mongodb://root:123456@127.0.0.1:27017/chemical
host: 192.168.0.45
port: 27017
database: chemical
username: root
password: '123456'
MondoDB实体类
package com.meeno.inner.oa.common.employee.entity;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import org.springframework.data.mongodb.core.mapping.Document;
import javax.persistence.EntityListeners;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.util.Date;
/**
* @description: 员工登录记录
* @author: Wzq
* @create: 2020-03-19 17:50
*/
@Document
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@EntityListeners(AuditingEntityListener.class)
public class EmployeeLoginRecord {
@Id
private Long objectId;
/**
* 用户id
*/
private Long userId;
/**
* 登录时间
*/
private Date loginDate;
@CreatedDate
private Date createDate;
@LastModifiedDate
private Date UpdateDate;
@CreatedBy
private Long creatorId;
@LastModifiedBy
private Long updateId;
public EmployeeLoginRecord(Long userId, Date loginDate) {
this.userId = userId;
this.loginDate = loginDate;
}
}
Jpa Repository
package com.meeno.inner.oa.common.employee.repository;
import com.meeno.inner.oa.common.employee.entity.EmployeeLoginRecord;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
/**
* @description: 员工登录记录Repository
* @author: Wzq
* @create: 2020-03-20 09:59
*/
@Repository
public interface EmployeeLoginRecordRepository extends MongoRepository<EmployeeLoginRecord,Long>{
Integer countByUserId(Long userId);
}
使用JPA
@Autowired
MongoTemplate mongoTemplate;
@Autowired
EmployeeLoginRecordRepository employeeLoginRecordRepository;
@Override
public void addLoginRecord(Long userId) {
EmployeeLoginRecord record = new EmployeeLoginRecord(userId, new Date());
this.mongoTemplate.insert(record);
}
@Override
public Boolean isFirstLogin(Long userId) {
//mysql中记录的是否第一次登陆
Employee employee = this.employeeRepository.getByUserId(userId);
Integer isFirstLogin = employee == null ? null : employee.getIsFirstLogin();
boolean isMysqlFirstLogin = (isFirstLogin == null || !Constants.NOT_IS_FIRST_LOGIN.equals(isFirstLogin));
//mongodb 判断是否第一次登陆
Integer count = this.employeeLoginRecordRepository.countByUserId(userId);
count = count == null ? 0 : count;
boolean isMongoFirstLoginCount = count.intValue() < 1 ? true : false;
//mysql 和 mongodb中一个找个不是第一次登陆就返回true
if (isMysqlFirstLogin || isMongoFirstLoginCount) {
return true;
}
return false;
}
Jpa-操作mongodb的更多相关文章
- 第12章—使用NoSQL数据库—使用MongoDB+Jpa操作数据库
使用MongoDB+Jpa操作数据库 SpringData还提供了对多种NoSQL数据库的支持,包括MongoDB;neo4j和redis.他不仅支持自动化的repository,还支持基于模板的数据 ...
- java操作mongodb & springboot整合mongodb
简单的研究原生API操作MongoDB以及封装的工具类操作,最后也会研究整合spring之后作为dao层的完整的操作. 1.原生的API操作 pom.xml <!-- https://mvnre ...
- mongoose - 让node.js高效操作mongodb
Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用. ...
- 【MongoDB for Java】Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...
- PHP操作MongoDB学习笔记
<?php/*** PHP操作MongoDB学习笔记*///*************************//** 连接MongoDB数据库 **////*************** ...
- PHP操作Mongodb之增删改查篇
之前,我讲解过PHP中mongodb扩展的安装,及启动,链接操作[忘记了?去看看吧!PHP操作Mongodb之一].本文主要就是讲在PHP中Mongodb的增加,查询,修改及删除数据的操作. 1.增加 ...
- PHP操作Mongodb之高级查询篇
本文主要讲解PHP中Mongodb的除了增删改查的一些其他操作. 在PHP操作Mongodb之增删改查篇中我们介绍了PHP中Mongodb的增加.删除.修改及查询数据的操作.本文主要是将查询时用到的高 ...
- php操作mongodb中的ISODate格式日期
mongodb 中数据记录的日期格式为"dateCreated" : ISODate("2011-12-20T07:22:50.836Z")经过翻阅php官网中 ...
- nodejs操作mongodb
一.下载地址 https://www.mongodb.com/download-center#community 二.控制台操作mongodb 1.安装完后添加环境变量. 2.在某个根目录下新建dat ...
- nodejs操作mongodb数据库封装DB类
这个DB类也算是我经历了3个实际项目应用的,现分享出来,有需要的请借鉴批评. 上面的注释都挺详细的,我使用到了nodejs的插件mongoose,用mongoose操作mongodb其实蛮方便的. 关 ...
随机推荐
- Word转PDF的VBA脚本
将以下内容复制粘贴在一个txt中,修改txt后缀为".vbs" On Error Resume Next Const wdExportFormatPDF = 17 Set oWor ...
- Selenium自动化测试框架Ride使用XLRD对于Excel测试数据的管理和操作
Python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 一.安装xlrd模块 到python官网下载http://pypi.pytho ...
- JProfiler监控java应用使用情况,故障情况分析
1.软件部署(java环境已提前准备) 服务器:centos7.4 https://download-gcdn.ej-technologies.com/jprofiler/jprofiler_linu ...
- 安装react后运行报错
错误提示:npm WARN checkPermissions Missing write access to C:\Users\LXD\Desktop\webpack-base\node_module ...
- Album++:分布式事务专辑-基础概念
(一)基础概念:↓ ↓ ↓ 1.1)什么是事务 什么是事务?举个生活中的例子:你去小卖铺买东西,"一手交钱,一手交货"就是一个事务的例子,交钱和交货必 须全部成功, 事务才算成功, ...
- Linux CentOS 7 安装配置vsftp
学习Linux时间不长,首次安装了vsftp,按照网上的各种帖子尝试配置,不过都没打到预期,不是被拒绝连接,就是连接超时,总之就是各种问题啊.当然了,不是别人配置的不对,而是自己不是太懂Linux,选 ...
- Socket介绍(五)
套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开.读写和关闭等操作.套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信.网络套接 ...
- SpringMVC中文乱码踩坑
问题 使用SpringMVC在返回一个字符串时发生了中文乱码问题.produces属性无效 @RequestMapping(value = "/nihao", produces = ...
- .net core连接Liunx上MS SQL Server
场景 由于业务要求,需要对甲方的一个在SQL Server上的财务表进行插入操作.研究了半天,因为一个小问题折腾了很久. 过程 .net core端: 1. 利用EF,就需要的导入相关的Nuget包, ...
- 论文笔记:(2019CVPR)PointConv: Deep Convolutional Networks on 3D Point Clouds
目录 摘要 一.前言 1.1直接获取3D数据的传感器 1.2为什么用3D数据 1.3目前遇到的困难 1.4现有的解决方法及存在的问题 二.本文idea 2.1 idea来源 2.2 初始思路 2.3 ...