Java Data JPA +hibernate 保存或者是查询遇到的坑
由于项目需求,接触了Java Data JPA +hibernate,它的调用方式是controller调用service,service有实现的接口serviceimpl,serviceimpl调用Dao,Dao中用注解@Query写HQL语句(如果要直接写原生的SQL语句@Query中加value="sql语句",nativeQuery=true),要新增或者修改或者是删除时除了加@Query还要加@Modifying注解才能生效。
多表联查用一个vo对象包含你所需要的字段,例如:
@Query("select new com.catsic.casee.yn.law.entity.SfmVo(sfm.dm,sfm.sfmc,sfm.sfjc,sfm.orderid,gsb.dm as odm , gsb.mc as odmmc) from Sfm sfm left join Qxgsbmb gsb on sfm.sfmc = gsb.sfmc where gsb.parentdm like %?1% order by gsb.layer asc")
public List<SfmDto> findSfm_GsbJoin(String parentdm);
SfmVo就是你所需的对象,new时字段名称一一对应,大小写对应。
第二种方法用一个map接受Map<String, Object>就像key-value
@Query(value = "select new map(sfm as sfm ,gsb as gsb ) from Sfm sfm left join Qxgsbmb gsb on sfm.sfmc=gsb.sfmc where gsb.parentdm =:parentdm")
List<Map<String, Object>> findSfm_GsbJoin2(@Param("parentdm") String parentdm);
1.特别遇到的 坑是,新增的实体包含Timestamp类型,对应数据库的Datat类型。新增时hibernate会把Timestamp类型直接保存为Datat类型。
但是如果数据库是Datat类型,你查询后获得的是String类型,就和你接收Vo的Timestamp类型不符合。总报错。这时候你的把接收到的String类型转换为Vo的Timestamp类型,那Vo类就能正常接收了。
2.如果使用nativeQuery=true的SQL语句,返回List<Map<String,Object>>,提示数组越界的话index1 size 1 ,但是SQL语句能正确查询出来,那么可能的form 后表太多,可以再用一个select查询包含所有表试试。
Java Data JPA +hibernate 保存或者是查询遇到的坑的更多相关文章
- SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法
软件152 尹以操 首先谢谢大佬的简书文章:http://www.jianshu.com/p/45ad65690e33# 这篇文章中讲的是spring中使用spring data jpa,使用了xml ...
- spring data jpa 使用方法命名规则查询
按照Spring Data JPA 定义的规则,查询方法以findBy开头,涉及条件查询时,条件的属性用条件关键字连接,要注意的是:条件属性首字母需大写.框架在进行方法名解析时,会先把方法名多余的前缀 ...
- 【hql】spring data jpa中 @Query使用hql查询 问题
spring data jpa中 @Query使用hql查询 问题 使用hql查询, 1.from后面跟的是实体类 不是数据表名 2.字段应该用实体类中的字段 而不是数据表中的属性 实体如下 hql使 ...
- Spring Boot 2.x 之 Spring Data JPA, Hibernate 5
1. Spring Boot常用配置项 基于Spring Boot 2.0.6.RELEASE 1.1 配置属性类 spring.jpa前缀的相关配置项定义在JpaProperties类中, 1.2 ...
- spring data jpa hibernate jpa 三者之间的关系
JPA规范与ORM框架之间的关系是怎样的呢? JPA规范本质上就是一种ORM规范,注意不是ORM框架——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口,但具体实现则由服 ...
- Spring Data JPA 实现多表关联查询
本文地址:https://liuyanzhao.com/6978.html 最近抽出时间来做博客,数据库操作使用的是 JPA,相对比 Mybatis 而言,JPA 单表操作非常方便,增删改查都已经写好 ...
- 使用Spring Data JPA的Specification构建数据库查询
Spring Data JPA最为优秀的特性就是可以通过自定义方法名称生成查询来轻松创建查询SQL.Spring Data JPA提供了一个Repository编程模型,最简单的方式就是通过扩展Jpa ...
- spring data jpa 使用JPQL的方式查询
用Spring Data JPA提供的查询方法已经可以解决大部分的应用场景,但是对于某些业务来说,我们还需要灵活的构造查询条件,这时就可以使用@Query注解,结合JPQL的语句方式完成查询 @Que ...
- Spring Data JPA 复杂/多条件组合查询
1: 编写DAO类或接口 dao类/接口 需继承 public interface JpaSpecificationExecutor<T> 接口: 如果需要分页,还可继承 public ...
随机推荐
- Sound (audio file) player in java - working source code example
转载自:http://ganeshtiwaridotcomdotnp.blogspot.com/2011/12/sound-audio-file-player-in-java-working.html ...
- LeetCode_206. Reverse Linked List
206. Reverse Linked List Easy Reverse a singly linked list. Example: Input: 1->2->3->4-> ...
- bootstrap 自带字体颜色
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 我的Java之路
前言: 之前在学习python,刚开始的时候跟多数小白一样学习一些基础的知识,比如数据类型,用法,基本的语言结构,学了一段时间实在是学习不下去了,真是太TMD的无聊了,很多方法都记不住,也不知道学了这 ...
- qt QML弹出新页面之后,如何屏蔽上一个页面的按钮区域事件
Rectangle{ //Rectangle是要显示的新页面 //增加一个mouseArea:,必须好把MouseArea作为第一个子元素,如果放在最后且不设置z属性的话,会覆盖其//他控件 Mous ...
- ROS初探--意义、基本模块
顾虑就使我们都变成了懦夫,使得那果断的本色蒙上了一层思虑的惨白的容颜,本来可以做出伟大的事业,由于思虑就化为乌有了,丧失了行动的能力.-----哈姆雷特 ROS: Robot Operating Sy ...
- 029 Android 轮播图广告Banner开源框架使用
1.Banner介绍 现在的绝大数app都有banner界面,实现循环播放多个广告图片和手动滑动循环等功能. 2.使用环境配置(具体可见github开源项目) (1)添加依赖 在build.gradl ...
- [转帖]运维必读:Linux 的内存分页管理
运维必读:Linux 的内存分页管理 https://cloud.tencent.com/developer/article/1356431 内存是计算机的主存储器.内存为进程开辟出进程空间,让进程在 ...
- Java:session中的invalidate()的作用是什么呢?求解
手工杀会话.会话失效有2种可能:超时和手工杀会话.手工杀方便省时间,程序员都爱用. 比如我做一个程序需要登录,中间访问的页面有会话控制,如果没有登录则跳转到登录页面,退出时清会话信息. 这是有两个选择 ...
- Scratch编程:绘制七色花(七)
“ 上节课的内容全部掌握了吗?反复练习了没有,编程最好的学习方法就是练习.练习.再练习.一定要记得多动手.多动脑筋哦~~” 01 — 游戏介绍 绘制一朵美丽的七色花. 02 — 设计思路 使用画笔功能 ...