基于JPA查询部分字段的相关事项
JPA查询部分字段相关事项
JPA使用HQL查询部分字段出错
org.hibernate.hql.internal.ast.QuerySyntaxException: XXX is not mapped
解决
应该@Entity指定name名,name值为对应表名,同@Table的name值相同
使用HQL的注意
1.想要使用JPA查询部分信息,需要使用HQL
2.select需跟实体,可以是map(必须是小写,大写试了下报错),或者是将待查询的字段单独封装成一个实体,new 实体
3.查询的字段中需要指定as别名,否则得到的map结果集中,key值默认是"0",“1”,“2”…数字
JPA中自定义查询语句一定要注意这些
JPA的原生语句如何支持where a=X and b>x,未找到。
于是自定义,由于JPA底层是hibernate,所以需要HQL语句。
真尼玛坑,sql语句为了所谓的面向对象,整个HQL语句,简直就是典型的强行面向对象。
所以,你不得不如此:select u from Table u where u.x=x and u.y>y
每次写这个最常忘记的是第二个u,完全反人类的语法。
而且JPA解析的时候,Table必须大写开头。
这个估计是先要JPA解析成HQL语句,再执行。
至于为啥要大写开头,可能是由于JPA的规定吧。
JPA会把TableEnt对应到table_ent这张表,为什么写成tableEnt就要报错。太不人性化。
补充
CTM,JPA查询语句中把元素开头写成了小写。
findByStatusAndTimeMilliLessThan写成了findByStatusAnd**t**imeMilliLessThan
这还是看到之前写的附带between的查询才想起来
然between可以混着写,那less和greater应该也行
也是被JPA的语法坑过几次,才会对JPA这么没信心。
比如:findFirst必须写成findFirstBy
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
JPA @Basic单表查询如何实现大字段懒加载
JPA @Basic单表查询实现大字段懒加载 近期看了JPA@Basic注解的使用,看到该注解可以设置字段的懒加载. 1.以前碰到的懒加载: 我们知道,多表关联的时候,我们是可以配置懒加载的,比如一个Company类,里面可以关联员工表,办公设备表,当我们查看公司信息的时候,我们并不需要直接加载员工表,办公设备表,只需要在用户查看员工,查看设备的时候再加载,这样可以提高加载效率. 长话短说,大概是这样子的 @Entity @Table(name = "Company") public
-
spring data jpa如何只查询实体部分字段
需求 现在有一张article表,用来储存文章,对应的实体类如下: package com.qianyucc.blog.model; import lombok.*; import javax.persistence.*; /** * @author lijing * @date 2019-08-05 14:28 * @description 文章 */ @Data @Entity @Table(name = "article") public class Article { @Id
-
spring data jpa 查询自定义字段,转换为自定义实体方式
目标:查询数据库中的字段,然后转换成 JSON 格式的数据,返回前台. 环境:idea 2016.3.4, jdk 1.8, mysql 5.6, spring-boot 1.5.2 背景:首先建立 entity 映射数据库(非专业 java 不知道这怎么说) @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long
-
SpringBoot使用JPA实现查询部分字段
目录 SpringBoot JPA查询部分字段 自定义简单的查询方法 SpringBoot JPA查询部分字段 用过JPA的都知道,只需要继承JpaRepository 根据Jpa的函数命名规范写出接口中的函数,不需要实现,底层就可以自动解析成各种数据库的sql语句,进行增删改查等操作. 自定义简单的查询方法 如findByUserName,findByUserNameOrEmail(String username, String email)等条件的属性名称与个数要与参数的位置与个数一一对应,
-
基于JPA查询部分字段的相关事项
JPA查询部分字段相关事项 JPA使用HQL查询部分字段出错 org.hibernate.hql.internal.ast.QuerySyntaxException: XXX is not mapped 解决 应该@Entity指定name名,name值为对应表名,同@Table的name值相同 使用HQL的注意 1.想要使用JPA查询部分信息,需要使用HQL 2.select需跟实体,可以是map(必须是小写,大写试了下报错),或者是将待查询的字段单独封装成一个实体,new 实体 3.查询的字
-
基于postgresql查询某个字段属于哪个表的说明
一.场景还原 前端小林问我,它从前端的返回的某些字段,想知道那个表有这个字段,它想操作这个表-- 二.sql语句 SELECT * FROM information_schema. COLUMNS WHERE COLUMN_NAME = 'storename'; SELECT c.relname AS "表名",a.attname AS "字段名",c.oid FROM pg_class c LEFT JOIN pg_attribute a ON a.attreli
-
spring data jpa查询一个实体类的部分属性方式
目录 springdatajpa查询一个实体类的部分属性 首先我们定义两个实体类 然后创建person实体类的repository 返回结果只包含firstName和lastName两个属性 springdatajpa查询部分字段.多余附加字段 第一种方法:使用model查询时转化 第二种方法:在service里边转换成JSON 第三种方法:select语句部分字段使用默认值 spring data jpa查询一个实体类的部分属性 使用Spring Data Repository查询时候,通常情
-
JPA 查询原生SQL转换VO对象方式
目录 JPA查询原生SQL转换VO对象 JPA非注解方式原生sql查询的一些注意事项 JPA查询原生SQL转换VO对象 List<String> sqlList = RiverCourseSql.getRiverCourseSQLString(new RiverCourseDataQO()); List<RiverCourseDataVO> riverCourseDataVO = rsvrfsrBDao.executeNativeQuery2Obj(sqlList.get(0),
-
基于JPA的Repository使用详解
目录 Spring Data JPA Repository CrudRepository PagingAndSortingRepository JpaRepository JpaSpecificationExecutor JpaRepository查询功能 Jpa方法命名规则 使用方法 解析过程 JPA自定义Repository方法 下面是具体的实现 经过实践发现 Spring Data JPA Spring Data是Spring提供的操作数据的框架,Spring Data JPA是Sprin
-
关于查询MySQL字段注释的5种方法总结
目录 前言 创建测试数据库 查询所有表注释 查询所有字段注释 字段注释查询方式1 字段注释查询方式2 字段注释查询方式3 字段注释查询方式4 字段注释查询方式5 修改表注释和字段注释 修改表注释 修改字段注释 总结 前言 很多场景下,我们需要查看 MySQL 中表注释,或者是某张表下所有字段的注释,所以本文就来盘点和对比一下查询注释的几种方式. 创建测试数据库 开始之前咱们先创建一个数据库,以备下面演示使用. -- 如果存在就先删除数据库 drop database if exists test
-
利用Mybatis向PostgreSQL中插入并查询JSON字段
目录 应用场景介绍 数据insert 数据select BATCH 批量插入 前言: 这里我使用的是TimescaleDB,加了一个时间戳字段,不过没差.关于PostgreSQL中Json数据类型的操作,可以参考官网. 应用场景介绍 将TCP发过来的数据包(通过消息队列发过来)解析出数据(一个数据包含有多帧,一帧中含有多条信息),并和本地规则表的格式对应起来.以JsonLineMsg实体类代表对应的一帧数据: package tsdb.entity; import lombok.AllArgsC
-
MyBatis-Plus 查询指定字段的实现
首先创建一个数据库表,如下图所示: 然后创建一个Spring Boot项目,pom.xml和配置如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schema
随机推荐
- Function.prototype.bind用法示例
- 手把手教你实现微信小视频iOS代码实现
- 实例分析nodejs模块xml2js解析xml过程中遇到的坑
- JavaScript中对象的不同创建方法
- 基于JavaScript实现前端数据多条件筛选功能
- PHP+Ajax无刷新带进度条图片上传示例
- windows系统中python使用rar命令压缩多个文件夹示例
- 求PHP数组最大值,最小值的代码
- 走出JavaScript初学困境—js初学
- C#关机小程序源码
- 完美解决input[type=number]无法显示非数字字符的问题
- js实现百度登录框鼠标拖拽效果
- JavaScript 获取用户客户端操作系统版本
- IE8中使用javascript动态加载CSS的解决方法
- 如何利用反射构建元数据查看器
- 从java中调用matlab详细介绍
- 一个牛人给Java初学者的建议(必看篇)
- python动态监控日志内容的示例
- Android屏蔽后退键的小例子
- 技巧“七招鲜”