JPA的一些坑】的更多相关文章

推荐一篇比较好的介绍JPA的文章:使用 Spring Data JPA 简化 JPA 开发 JPA坑1:不支持Limit查询 JPA是不支持Limit分页查询,而我们有时又因为某些原因不想用JPA提供的分页功能,或者他提供的分页功能还不能满足我们特定的需求,那么就需要自定义我们的查询,方法如下: /** * * ClassName: ADTemplateDaoSpecific <br/> * Reason: TODO 该接口为模板的CRUD操作的自定义特制接口. <br/> * d…
1.不能从别的类的repository那里 执行另一个类的sql,这样映射会失败. 2.有entity,就要有repository,并且还要有id注解 3.还要多表联查未测试,估计要用map去映射出来了,更新表的选项尽可能关闭 none…
写这篇博文是因为这个东西坑太多,首先说明下边实现的多数据源不是动态切换的,应该算是静态的. 坑一.pom文件 pom中spring boot以及mysql connector的版本一定要注意. <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.8.RE…
前言 jpa是ORM映射框架,更多详情,请戳:apring-data-jpa官网:http://spring.io/projects/spring-data-jpa,以及一篇优秀的博客:https://www.cnblogs.com/cmfwm/p/8109433.html,这里只是记录项目实现. 工程结构 代码编写 maven引包 <!--添加springdata-jpa依赖 --> <dependency> <groupId>org.springframework.…
公司最近使用的ORM框架是JPA实现产品使用的是hibernate,曾经看过一篇博客上面说的是如果团队里面没有一个精通hibernate的人,那么最好不要使用它,我现在是深刻的体会到了.但是使用什么框架不是我能决定的,如果是我的话,我宁愿使用mybatis.吐槽完来讲讲出现的问题,因为我们项目是一个电商的项目模块比较多,所以各种表关联.用了一段时间以后,我们发现非常的慢,打开一个页面要20多秒==!,后台一直打印sql,我们在实体上面注解的LAZY看似并没有起什么作用.各种调试各种百度但是一直找…
标签: springmvc hibernate 2016年12月21日 21:48:035133人阅读 评论(0) 收藏 举报  分类: Spring/Spring MVC(6)  Hibernate(1)  版权声明:本文为博主原创文章,未经博主允许不得转载,如需转载,请注明文章出处为 http://www.54tianzhisheng.cn/,否则考虑法律追究责任,谢谢合作! https://blog.csdn.net/tzs_1041218129/article/details/53791…
由于项目需求,接触了Java Data JPA +hibernate,它的调用方式是controller调用service,service有实现的接口serviceimpl,serviceimpl调用Dao,Dao中用注解@Query写HQL语句(如果要直接写原生的SQL语句@Query中加value="sql语句",nativeQuery=true),要新增或者修改或者是删除时除了加@Query还要加@Modifying注解才能生效. 多表联查用一个vo对象包含你所需要的字段,例如:…
Spring Data JPA使用findAllOrderBy时踩的坑 按照以往的编程经验,我的写法是这样的: List<ActivityEntity> findAllOrderByWishCountDesc(); 可以看到,我希望在一个表中查询所有的数据,并按照WishCount这个字段进行排序,这样的写法看似正确的,但总会报这样的错误: Caused by: java.lang.IllegalArgumentException: Failed to create query for met…
最近在做一个有关OA项目中使用spring data JPA 操作数据库,结果遇到了补个不可思议的麻烦.困惑了好久. 首先看一下问题吧,这就是当时测试“设置角色时,需要首先删除该用户已经拥有的角色时”报错如下图: 一开始遇到这个问题 并没有感觉到有多大问题,后来就找了几个小时还是没有结果....后来在网上搜了好多还是没有找到结果...这时的自己就崩溃了,于是就去网上 搜索有关spring data jpa 相关Insert 和delete 及update的等操作问题,结果一眼就看到了问题的额所在…
今天使用@Query自定义查询语句,出现了一个错误: java.lang.IllegalArgumentException: Parameter with that position [1] did not exist at org.hibernate.jpa.spi.BaseQueryImpl.findParameterRegistration(BaseQueryImpl.java:502) at org.hibernate.jpa.spi.BaseQueryImpl.setParameter…
1. Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set 在配置文件中添加: spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect 2. Caused by: java.sql.SQLException: No timezon…
//上一段示例代码List<Member> memberList = memberDao.findByLoginNameIn(names);for (Member m : memberList) { payPoints += m.getPayPoints(); rankPoints += m.getRankPoints(); virtualCoin += m.getVirtualCoin();}member.setVirtualCoin(virtualCoin);member.setRankP…
SQLGrammarException could not execute query  cause by not found column id ,, id指的是,返回的结果没有Id 封装结果集出错,,不是全部字段时应该用Object  接收,,不能再用对象 单个字段单条记录时,返回类型最好用对应字段的类型或者Object. 多个字段时,不论是多条记录还是单条记录,返回类型都应该是List<Object[]> GrammarException  Parameter with that nam…
本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring整合的环境中实现.如果需要了解该框架的入门,百度一下,很多入门的介绍.在这篇文章的接下来一篇,会有一个系列来讲解mybatis,这个系列从mybatis的入门开始,到基本使用,和spring整合,和第三方插件整合,缓存,插件,最后会持续到mybatis的架构,源码解释,重点会介绍几个重要的设计模式,…
配置如下 @Id @GeneratedValue(generator="generator") @GenericGenerator(name="generator",strategy="increment") @Column(name = "id") public Long getId() { return id; } 问题就 出在这 由Hibernate从数据库中取出主键的最大值(每个session只取1次),以该值为基础,…
开新坑 开新坑了(笑)....公司项目使用的是Spring Data JPA做持久化框架....学习了一段时间以后发现了一点值得注意的小问题.....与大家分享 主要是针对1:N单向关联产生的一系列问题. @PrePersistent @PrePersist和@PreUpdate2个注解是我在公司项目里遇到的...公司是在save对象或者update对象的时候去影子表里同时做一个备份时用到的(公司项目很多地方我现在还是不懂...这里我是觉得他们是这么用的...)...然后公司的实体间的关系大部分…
因为用了JPA配合Hibernate ,采用注解默认是开启了LayzLoad也就是懒加载,所以不得不在Junit的单元测试上加上@Transactional注解 这样Spring会自动为当前线程开启Session,这样在单元测试里面懒加载才不会因为访问完Repo之后,出现session not found. 但是单元测试里面如果加上了@Transactional 会自动回滚事务,需要在单元测试上面加上 @Rollback(false) @Test @Transactional @Rollback…
对于 Spring Data JPA 使用的时间不长,只有两年时间.但是踩过坑的却不少. 使用下列代码 @Modifying @Query("update User u set u.firstname = ?1 where u.lastname = ?2") int setFixedFirstnameFor(String firstname, String lastname); 首先让人奇怪的是,repository method只能返回int或者转为void,因为这个操作只会把数据写…
本篇文章基于已经实现了ssh集成的demo.项目.具体的ssh项目怎么配置,请参考本文最后 spring环境下的JUnit4测试 1,下载所需jar包: spring-test-3.2.0.RELEASE.jar junit-4.11.jar commons-dbcp-1.4.jar jar包怎么下载? junit4测试 和 ssh 集成测试分两种, 一种是比较老点的手动配置 另一种是现在流行的注解扫描配置 先说注解扫描配置集成junit4遇到的坑: 1.下载的\spring-test-3.1.…
  理论的东西如果不实践,永远不会变成自己的东西.本文将介绍用maven管理,用Hibernate作为JPA供应商,使用MYSQL数据库,配置和使用JPA.   以下代码已经上传至GITHUB.   首先在pom.xml文件中添加依赖: <dependencies> <!-- 向pom添加必要依赖项 --> <dependency> <groupId>org.springframework</groupId> <artifactId>…
一.搭建spring boot环境 maven工程 pom文件内容 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-…
前提准备: 搭建一个springboot项目,详情请参见其它博客:点击前往 1 引入相关依赖 web.mysql.jpa.lombok <?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&…
前提: 创建一个springboot项目 创建一个名为springboottest的MySQL数据库 1 jar包准备 jpa的jar包 mysql驱动的jar包 druid数据库连接池的jar包 lombok工具jar包 注意01: druid的jar包在都如时一定要指定版本,其它的spring boot项目会自动进行版本管理 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="…
前言 今天是第三篇了,上一篇简单模拟了数据,实现了LayIM页面的数据加载.那么今天呢就要用数据库的数据了.闲言少叙,书归正传,让我们开始吧. 数据库 之前有好多小伙伴问我数据库是怎么设计的.我个人用关系型数据库比较多,一般就是根据业务来分析,一对一的关系,一对多的关系,多对多的关系等,那么对于LayIM就根据这几个关系出发.而且先根据业务来设计.它初始化的数据我们都见过了,数据中分别包含以下四个部分. 个人用户信息 好友分组信息 群组信息 大部分业务都是围绕着用户转的,那么我们一条一条的分析.…
主要是自己在使用JPA框架时遇到的一个坑,拿出来分享一下 首先上一个简单JPA框架实体 public interface EnterpriseInfoDao extends JpaSpecificationExecutor<EnterpriseInfoEntity>, PagingAndSortingRepository<EnterpriseInfoEntity,String> { } JPA的运用我就不多说了网上搜一下都是,我就举一个一般的使用方法 public interfac…
1 前言 之前整理了一个spring+jotm实现的分布式事务实现,但是听说spring3.X后不再支持jotm了,jotm也有好几年没更新了,所以今天整理springboot+Atomikos+jpa+mysql的JTA分布式事务实现. Atomikos网上的资料确实比jotm多,另外我发现STS工具里集成了Atomikos,那spring对Atomikos的支持毋庸置疑肯定会在相当长的时间内会是友好的. 2 开发环境 Springboot 1.0.1 + Atomikos 3.9.3 + J…
引言:该文档是参考尚硅谷的关于springboot教学视屏后整理而来.当然后面还加入了一些自己从网上收集整理而来的案例! 一.SpringData JPA初步使用 1. springdata简介 2. springboot整合springdata jpa(这是一个最简单的集成案例) pom.xml引入架包依赖: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://ma…
我承认,本文的标题有一点标题党,特别是写业务代码,大家因为没有足够重视一些细节最容易调的坑(侧重Java,当然,本文说的这些点很多是不限制于语言的). 1.客户端的使用 我们在使用Redis.ElasticSearch.RabbitMQ.Mongodb等中间件或存储的时候肯定都会使用客户端包来和这些系统通讯,我们也会使用Http的一些客户端来发Http请求.在使用这些客户端包的时候,非常容易犯错的一个地方就是Client的使用方式,比如有一个叫做RedisClient的类,是Redis操作的入口…
Spring data jpa 支持注解式的读写锁(悲观锁),实际上这个东西硬编码也简单,但是基于Jpa 命名方式定义的Sql,只能用注解添加支持读写锁了, 不了解读写锁的可以点这里 mysql读写锁及事务 并且推荐 PESSIMISTIC_READ,PESSIMISTIC_WRITE,而不是 READ,WRITE,但是官方文档貌似没有更新这个案例,踩了一些坑. 新建一个实体Book.java /** * User: laizhenwei * Date: 2018-04-18 Time: 9:0…
原文地址:https://blog.csdn.net/weixin_40326509/article/details/80865646 在使用springboot中,需要使用JPQL和SQL去查询记录. 获取一整条记录,返回的类型就是对应的实体类或者实体类的集合. 当不是全部字段时,返回类型就不能是实体类了. 以下是用JPQL和SQL获取单个字段或多个字段的返回类型: JPA查询单个字段: @Query(value="select age from User u where u.name=?1&…