jpa中的坑

2024-06-23 16:18
文章标签 jpa

本文主要是介绍jpa中的坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. BigInteger can not case to Long

JPA内部查询是通过createSQLQuery和createQuery实现的。所有的查询都会调用这两个方法。它们的不同点是:

createQuery用的JPQL语句进行查询,createSQLQuery用sql语句查询;
前者以hibernate生成的Bean为对象装入list返回;后者则是以对象数组进行存储;
当通过createSQLQuery查询时,如果存在Bean的实例,则它会按照实例去返回,但是当实例不存在时它会按照JPA给定的默认配置去返回映射值,而bigint的映射正是BigInteger,所以才会出现如上情况。

解决方案:不要使用nativeQuery。

转自:《bug之 JPA采用原生sql查询 BigInteger can not case to Long》

另外有一种说法是:因为把BIGINT(20)定义成了UNSIGNED导致的。——《MySQL中BIGINT与Java数据类型对应问题》

这篇关于jpa中的坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1087654

相关文章

使用Spring Boot集成Spring Data JPA和单例模式构建库存管理系统

引言 在企业级应用开发中,数据库操作是非常重要的一环。Spring Data JPA提供了一种简化的方式来进行数据库交互,它使得开发者无需编写复杂的JPA代码就可以完成常见的CRUD操作。此外,设计模式如单例模式可以帮助我们更好地管理和控制对象的创建过程,从而提高系统的性能和可维护性。本文将展示如何结合Spring Boot、Spring Data JPA以及单例模式来构建一个基本的库存管理系统

spring data jpa 懒加载问题

使用spring-data-jpa+spring+springmvc+restful的时候,碰到了一个问题,就是懒加载的问题。因为是后端返回的是JSON数据,所以如果在要额皮质懒加载的的关联字段的时候,只是配置 @ManyToOne(fetch=FetchType.LAZY)               @JoinColumn(name = "cat_measurement") 这样会报一个错误

SpringBoot(JPA关联)

JPA多表查询 多表查询在spring Data JPA 中有两种实现方式,第一种是创建一个结果集的接口来接收多表联接查询后的结果,第二种是利用JPA的关联映射来实现。 示例代码 多表联接查询 实体类Role @Entity@Table(name = "sys_role")@Datapublic class Role {@Id@GeneratedValue(strateg

了解Spring Data JPA

1、Spring Data JPA 1.1、概述         Spring Data JPA 是 Spring 基于JPA 规范的基础上封装的⼀套 JPA 应⽤框架,可使开发者⽤极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常⽤功能!学习并使⽤Spring Data JPA 可以极⼤提⾼开发效率。 Spring Data 家族: 1.2、官网 Spri

开发指南058-JPA多数据源

一般情况下,一个微服务只链接一个数据库,但是不排除有些情况下需要链多个库。链多个库比较复杂,介绍如下:        1、nocas中要配置多数据源              白框内为正常的单数据库情况。下面增加标识(可以任意起,这里为eva),然后跟数据库定义       2、定义新数据库源 @Configurationpublic class evaDruidCon

JPA关联MyBatis

3.1 JPA 多表查询        多表查询在 Spring Data JPA 中有两种实现方式,第一种是创建一个结果集的接口来接受多表连接查询后的结果,第二种是利用 JPA 的关联映射来实现 3.1.1 数据库表及关系       CRM 数据库中除 sys_user(用户)表外,还包括sys_role(角色)表。       sys_role(角色)表脚本: CREATE TAB

数据访问:JPA关联MyBatis

创建项目:    添加关键依赖包: 任何使用方式都需要首先在pom.xml中引入mybatis-spring-boot-starter的启动器 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version

数据访问:JPA

JPA(Java Persistence API)是Java平台上用于对象关系映射(ORM)的规范,它提供了一种标准的方式来将Java对象映射到关系数据库中的表,从而简化了数据持久化的过程。以下是JPA的一些关键点总结: 1. ORM 简化数据操作 对象关系映射:JPA通过实体(Entity)和映射(Mapping)机制,将Java对象与数据库表对应起来,允许开发者以面向对象的方式操作数据库,

Spring Data Jpa 关于fetch join 的错误

spring data jpa 文档的官方网站: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/ 在开发中使用到 Jpa Dao 方法时,出现如下错误: fetch join... but the owner of the fetched association was not present

避坑版:springboot+JPA如何配多种数据源(postgresql+mysql)

注意: JPA和mybatis是不同的持久层,各自特点独特, 与mybatis相比,JPA需要考虑对数据源的映射和操作, 通常我们设置在项目启动时,JPA就会根据设置去创建或者更新表, 因此不能像mybayis那样等到调用时再去告诉方法用哪个数据源, JPA需要一开始就设定好repository和entity所对应的数据源, 在下列文件repository里你可以看到相关设置; 坑,请