使用 :param的方式来传递参数,下面举个例子

@PersistenceContext
​​​​​​​EntityManager em
@Override
public List<Map> ajaxRelationByCompanyUUID(String companyUUID, String ajaxQuery,List<Integer> types, Integer fetchSize) {
String sql = "select * from Company where companyuuid= :companyuuid" +
" and CompanyType in (:types)";
Map<String, Object> params = new HashMap<String, Object>();
//公司uuid
params.put("companyuuid",companyUUID);
//公司类型(集合)
params.put("types",types);
//模糊查询
if (StringUtils.isNotBlank(ajaxQuery)) {
sql += " and (CompanyNameCN like :ajaxQuery )";
params.put("ajaxQuery" ,"%" + ajaxQuery + "%");
}
Query query = em.createNativeQuery(sql);
for (Map.Entry<String, Object> entry : params.entrySet()) {
query.setParameter(entry.getKey(), entry.getValue());
}
return super.exectSqlMap(query);
}

exectSqlMap:

protected List<Map> exectSqlMap(Query query) {
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
return query.getResultList();
}

或者

public SysAppversion GetApp(String appCode, BigDecimal appVersion)
{
String sql = "select * from sys_appversion where AppCode= ? and AppVersion> ? order by AppVersion desc limit 1 "; List<Object> params = ListUtil.initList(Object.class);
params.add(appCode);
params.add(appVersion); Query query = dao.getCurSession().createSQLQuery(sql).addEntity(SysAppversion.class);
for (int i = 0; i < params.size(); i++) {
query.setParameter(i, params.get(i));
}
if(query!=null)
return (SysAppversion)query.list().get(0);
return null;
}

JPA Query in 集合的更多相关文章

  1. JPA query 基本语法解释

    详细语法官网去学习 -->> http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#reference Qu ...

  2. 20191217-关于JPA @Query查询数据一直为空,直接在数据库里执行SQL则可以查出来

    20191217-关于JPA @Query查询数据一直为空,直接在数据库里执行SQL则可以查出来 前提:数据库中查询,由于在视图中无主键概念,只是在代码中由逻辑主键.结果:数据中作为逻辑主键中有个字段 ...

  3. 【Spring Data 系列学习】Spring Data JPA @Query 注解查询

    [Spring Data 系列学习]Spring Data JPA @Query 注解查询 前面的章节讲述了 Spring Data Jpa 通过声明式对数据库进行操作,上手速度快简单易操作.但同时 ...

  4. spring data jpa @query的用法

    @Query注解的用法(Spring Data JPA) 参考文章:http://www.tuicool.com/articles/jQJBNv . 一个使用@Query注解的简单例子 @Query( ...

  5. jpa @Query()参数设置,:冒号方式、?NO.问号方式、实体类对象参数设置

    一.service层事务(update/delete) @Transactional(rollbackFor = Exception.class) 二.@Query()参数设置 ?x  和:XX不能混 ...

  6. JPA query between的多种方式(mongodb为例)

    背景 JPA+MongoDB查询,给定一段时间范围查询分页结果,要求时间范围包含. Page<Log> findByCtimeBetweenOrderByCtime( LocalDateT ...

  7. spring jpa @Query中使用in

    @Modifying @Query("delete from SmTenant s where s.id in ?1") void deleteByIds(List<Long ...

  8. JPA入门学习集合springboot(一)

    1.在pom.xml文件中添加相应依赖 SpringData jpa和数据库MySql <!-- Spring Data JPA 依赖(重要) --> <dependency> ...

  9. JPA使用之@Query的常用写法

    准备 实体 @Data @Table(name = "task_apply") @Entity public class TaskApply { @Id @GeneratedVal ...

随机推荐

  1. STL unique

    1: template <class ForwardIterator> 2: ForwardIterator unique (ForwardIterator first, ForwardI ...

  2. Jackson环境安装设置

    本地环境设置 由于Jackson是基于Java编程语言的,所以需要设置Java开发环境,这里介绍如何下载安装设置Java.请按照以下步骤来设置环境. Java SE是免费的,点击下载链接:下载Java ...

  3. WSGI是什么?

    WSGI是什么? WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义 ...

  4. springboot + zipkin + mysql

    zipkin的数据存储可以存在4个地方: 内存(仅用于测试,数据不会持久化,zipkin-server关掉,数据就没有了) 这也是之前使用的 mysql 可能是最熟悉的方式 es Cassandra ...

  5. MySQL数据库 -- Navicat、pycharm连接数据库

    内容目录 1.Navicat使用 2.pycharm使用数据库 一.Navicat使用 #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新 ...

  6. 在阿里云 既php和mysql装好之后,如何安装zabbix

    首先找到php.ini这个文件 命令如下 find / -name php.ini 然后参数修改为如下,不改装不了 max_execution_time = 300  memory_limit = 1 ...

  7. lsm和lkm模块

    使用LSM Hook框架进行内核安全审计.元数据捕获,安全人员只需要按照既定的调用规范编写LKM模块,并加载进Linux内核,而不需要对system call lookup表进行任何修改 https: ...

  8. python 编写暴力破解mysql用户名密码

    本文摘自别人的,自己运行调试了一下#!/user/bin/env python#-*- coding:utf-8 -*- import pymysql#导入连接数据库的模块import sys cla ...

  9. Java ArrayList使用技巧 - 两个ArrayList去除重复的元素

    方法一.ArrayList中提供的removeAll方法(效率最低) List1.removeAll(mSubList); 方法二.双重循环(比方法一效率高) 双重循环分为内外两层循环,经过测试,将元 ...

  10. C# - *.dll vs *.lib (动态链接库 vs 静态链接库)

    静态库 库(Library)就是一段编译好的二进制代码,加上头文件就可以使用. 静态链接库(Windows 下的*.lib, Linux & Mac 下的 .a).之所以叫做静态,是因为静态库 ...