jpa查询学习实例

//模糊条件查询
@Query("select a.id from Room a where a.fullName like CONCAT('%',?1,'%')")
@QueryHints({@QueryHint(name = "org.hibernate.cacheable", value = "true")})
Set<Long> findIdByFullName(String name);

@Query("select a from Room a where a.name = ?1 and a.fullName like CONCAT('%',?2,'%')")
@QueryHints({@QueryHint(name = "org.hibernate.cacheable", value = "true")})
List<Room> findByNameAndPName(String name, String fullName);
//条件查询排序
@Query("select a from Room a where a.parentId = ?1 order by a.id")
@QueryHints({@QueryHint(name = "org.hibernate.cacheable", value = "true")})
List<Room> findByPidOrderName(Long pid);
//多数据更新
@Query("update GZFUser set pIdCard = ?2, holderName = ?3, type='other' where id in (?1)")
@Modifying
void updateOtherTypeByIds(Set<Long> ids, String pIdCard, String holderName);
//根据日期查询当年当月数据按照部门分组统计
@Query("select a.organization.id,count (a) from Education a where month(a.dateCreated) = month(?1) and year(a.dateCreated) = year(?1) group by a.organization.id")
List<Object[]> findHomeStateResult(String date);
//按名称分组排序
@Query("select a.name,a.spec,a.munit,sum(a.number),a.month from FireEquipment a group by a.name")
List<Object[]> findByNameAndMonth();
//删除
@Modifying
@Query("delete from OtherDocumentState where organization.id in (?1)")
int deleteIdIn(Long[] longs);

@Modifying
@Query("delete from OtherDocumentState where document.id=1")
int deleteByOtherDocumentId(Long id);
//简写方式
@QueryHints({@QueryHint(name = "org.hibernate.cacheable", value = "true")})
User findByUsername(String username);

@QueryHints({@QueryHint(name = "org.hibernate.cacheable", value = "true")})
User findByEmail(String email);

@QueryHints({@QueryHint(name = "org.hibernate.cacheable", value = "true")})
User findByUsernameAndIdIsNot(String username, Long id);

@QueryHints({@QueryHint(name = "org.hibernate.cacheable", value = "true")})
User findByEmailAndIdIsNot(String username, Long id);

 

jpa左连接查询写法实例

@Query(value = "SELECT a.id,a.user_name,a.room_type,a.rent_type,b.name,b.id AS room_id,b.cell,b.floor,b.type,b.sorter  FROM gzf_room b LEFT JOIN gzf_rent_info a ON a.room_id = b.id WHERE b.parent_id = ?1", nativeQuery = true)
@QueryHints({@QueryHint(name = "org.hibernate.cacheable", value = "true")})
List<Object[]> findByRoomHome(Long id);

关于vue数字的处理(四舍五入、向上取整、向下取整)

1、向下取整的函数
Math.floor();
例如:Math.floor( 23.2222222); // 23

2、向上取整
Math.ceil();
例如: Math.ceil(23.333333); // 24

3、四舍五入
Math.round();
例如:Math.round(23.33333); // 23

4、四舍五入取n位小数,运算后得到的是字符串
().toFixed(n); // 取小数点后n位
例如:(36.36498524).toFixed(3); // 36.365

字符串转数组的几种方法和字符串的截取

一:带[]的字符串如下处理

var str="[2,34,3.4]"; 
var strNew=eval(str); 
console.log(strNew[0]+"--"+strNew[1]+"--"+strNew[2]);
//2--34--3.4

二:正常字符串如下处理

var str2="2,34,3.4";
var str2New=str2.split(",");
console.log(str2New[0]+"++"+str2New[1]+"++"+str2New[2]);
//2++34++3.4

三:带()字符串如下处理

var str="合适dsw(18701200120)";
var strNew =str.replace("(","").replace(")","");
var strNewIphone=strNew.substr(strNew.length-11);
var strNewName=strNew.substring(0,strNew.length-11);
console.log(strNewName+"---"+strNewIphone);
//合适dsw---18701200120

moment时间戳相互转换

时间:var time = new Date(); // Tue Aug 28 2018 09:16:06 GMT+0800 (中国标准时间) 
时间戳:var timestamp = Date.parse(time); // 1535419062000 (Date.parse() 默认不取毫秒,即后三位毫秒为0) 
moment转时间:moment(time).valueOf(); // 1535419062126 
moment转时间戳:moment(timestamp).format(); // 2018-08-28T09:17:42+08:00
render: (h, params) => {
              var res = moment(params.row.dateCreated).format('YYYY-MM-DD HH:mm:ss');
              return h('div', [
                h('span', {}, res)
              ])
            }

公司前后端分离框架权限控制各形式说明

一般开发的系统中包含下面三种权限控制方式,使用权限控制前需导入权限资源且定义permission变量,如下例子:

import * as permission from '../../../../utils/permission'
export default {
  data() {
    return {
      permission: permission
    }
  }
}

1. 组件及标签的现实与隐藏控制。

<i-button size="small" icon="" v-auth="permission.ZNSW_SUB" @click="openAddModel">新增</i-button>

2.列表中操作按钮通过定义指令控制按钮的显示与隐藏。

{
            title: '操作',
            align: 'center',
            width: 130,
            fixed: "right",
            render: (h, params) => {
              return h('div', [
                h('a', {
                  style: {
                    marginRight: "10px"
                  },
                  on: {
                    click: () => {
                      this.$refs.editRef.loadData(params.row.id);
                      this.editModel = true;
                    }
                  },
                  directives: [
                    {
                      name: "auth",
                      value: this.permission.ZNSW_SUB
                    }
                  ]
                }, '修改'),
                h('a', {
                  style: {
                    marginRight: "10px"
                  },
                  on: {
                    click: () => {
                      this.deleteModal = true;
                      this.deleteModel = 0;
                      this.rowIndex = params.index
                    }
                  },
                  directives: [
                    {
                      name: "auth",
                      value: this.permission.ZNSW_SUB
                    }
                  ]
                }, "删除"),
                h('a', {
                  style: {},
                  on: {
                    click: () => {
                      this.$refs.viewRef.loadData(params.row.id);
                      this.detailModal = !this.detailModal
                    }
                  }
                }, '详情'),
              ])
            }
          },

3.具体方法中可以直接通过判断实现。

if (Vue.auth(this, permission.FILE_DIR_OPTION)|| Vue.auth(this, permission.FOLDER_CREATE)) {
}
中宁水务项目定义权限资源有:
export const ZNSW_TEAM = 'znsw:team' 班组操作权限
export const ZNSW_SUB = 'znsw:sub' 子公司操作权限
可以根据实际情况把除检查外的其他录入模块进行权限控制,班组无权限录入与修改,只有子公司有录入权限。实际情况只需配置子公司权限,班组不予分配也就看不到,不用做各种情况判断,可参照教育培训修改。

IntelliJ IDEA 2018.3.1 x64 破解

          第一步:进入官网下载工具IntelliJ IDEA

网址https://www.jetbrains.com/idea/download/#section=windows(windows版本)选择安装用安装包形式安装

第二步:双击已下载文件

,进行开始安装;

点击  next  继续ing…

那么安装的过程就不做多介绍了。在安装完idea后,直接关闭,千万不要打开了IDEA

因为我们需要破解,如果没有破解也有一定的试用期,试用期后就要购买产品了。

那么就要破解它,目前一般用破解补丁来破解。

破解补丁链接http://idea.lanyus.com/jar/JetbrainsIdesCrack-3.4-release-enc.jar

将你下载好的JetbrainsCrack-x.x.x.jar拷贝到你的Idea安装目录的bin目录下,如下图红色框所示

这是下载的破解补丁

3.在安装的idea下面的bin目录下面有2个文件 : 一个是idea64.exe.vmoptions,还有一个是idea.exe.vmoptions(如上图红色色框)

用记事本打开,分别在最下面一行增加:-javaagent:D:\JetBrains\IntelliJ IDEA 2018.3.1\bin\JetbrainsIdesCrack-3.4-release-enc.jar(路径为本机ideal 目录下bin目录中 JetbrainsIdesCrack-3.4-release-enc.jar存放的路径;)

4.重新启动软件,再到Acrivation code 中选择界面的时候,写入下面注册代码(到2099年到期,真正的写到去世版本)

ThisCrackLicenseId-{
“licenseId”:”ThisCrackLicenseId”,
“licenseeName”:”idea”,
“assigneeName”:””,
“assigneeEmail”:”idea@163.com”,
“licenseRestriction”:”For This Crack, Only Test! Please support genuine!!!”,
“checkConcurrentUse”:false,
“products”:[
{“code”:”II”,”paidUpTo”:”2099-12-31″},
{“code”:”DM”,”paidUpTo”:”2099-12-31″},
{“code”:”AC”,”paidUpTo”:”2099-12-31″},
{“code”:”RS0″,”paidUpTo”:”2099-12-31″},
{“code”:”WS”,”paidUpTo”:”2099-12-31″},
{“code”:”DPN”,”paidUpTo”:”2099-12-31″},
{“code”:”RC”,”paidUpTo”:”2099-12-31″},
{“code”:”PS”,”paidUpTo”:”2099-12-31″},
{“code”:”DC”,”paidUpTo”:”2099-12-31″},
{“code”:”RM”,”paidUpTo”:”2099-12-31″},
{“code”:”CL”,”paidUpTo”:”2099-12-31″},
{“code”:”PC”,”paidUpTo”:”2099-12-31″}
],
“hash”:”2911276/0″,
“gracePeriodDays”:7,
“autoProlongated”:false}
然后呢选择第二个 Activation code 激活方式,复制以上代码内容如图,OK…开始进入代码世界