首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring,Hibernate和JPA:在entitymanager上调用persist似乎没有提交到数据库

在这个问答内容中,您提到了 Spring、Hibernate 和 JPA,这些都是 Java 开发领域中常用的技术。

首先,我们来介绍一下这三个技术的概念和应用场景:

  1. Spring:Spring 是一个 Java 开发框架,它提供了一系列的模块,可以帮助开发者快速构建企业级应用。Spring 提供了依赖注入、AOP、事务管理等功能,可以帮助开发者简化代码,提高代码的可维护性和可扩展性。Spring 广泛应用于企业级应用、Web 应用、移动应用等场景。
  2. Hibernate:Hibernate 是一个 Java ORM 框架,它提供了将 Java 对象映射到关系型数据库的功能。Hibernate 可以自动生成 SQL 语句,帮助开发者简化数据库访问代码。Hibernate 广泛应用于企业级应用、Web 应用等场景。
  3. JPA:JPA 是 Java 持久化 API 的缩写,它是一个规范,定义了 Java 应用如何与持久化存储层进行交互。JPA 提供了一组 API,允许开发者将 Java 对象映射到关系型数据库。JPA 广泛应用于企业级应用、Web 应用等场景。

接下来,我们来解释您提到的问题:

在使用 Spring 和 Hibernate 时,在 EntityManager 上调用 persist 方法,通常表示将 Java 对象持久化到数据库中。如果您发现 persist 方法没有将数据提交到数据库中,可能是以下原因导致的:

  1. 事务管理问题:在使用 Spring 和 Hibernate 时,需要使用事务来管理数据库操作。如果事务没有正确配置或管理,可能导致数据没有提交到数据库中。您可以检查您的代码中是否正确配置了事务管理。
  2. 数据库连接问题:如果数据库连接出现问题,可能导致 persist 方法没有将数据提交到数据库中。您可以检查数据库连接配置是否正确,以及数据库是否正常运行。
  3. 数据库驱动问题:如果使用的数据库驱动不正确或不兼容,可能导致 persist 方法没有将数据提交到数据库中。您可以检查数据库驱动是否正确配置,以及是否与您使用的数据库版本兼容。

总之,当使用 Spring、Hibernate 和 JPA 时,如果 persist 方法没有将数据提交到数据库中,可能是由于事务管理、数据库连接或数据库驱动等问题导致的。您可以检查相关配置和代码,确保它们正确配置和运行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一篇 JPA 总结

概述 下面是 JDBC Java 应用和数据库之间的位置,充当着一个中间者,供 Java 应用程序访问所有类别的数据库,建立一个标准 ?...JPA Hibernate 的关系 JPA 是规范:JPA 本质是一种 ORM 规范,不是 ORM 框架,只是定制了一些规范,提供了一些编程的 API 接口,具体实现由 ORM 厂商实现 Hibernate...**@Temporal** JavaAPI 中没有定义 Date 类型的精度,而在数据库中表示 Date 类型的数据类型有 Date,Time,TimeStamp 三种精度(日期,时间,两者兼具...Spring 整合 JPA 整合什么 Spring 管理 EntityManagerJPA 使用声明式事务 使用什么整合 LocalContainerEntityManagerFactoryBean...,其适用于所有环境 整合步骤 jar 包 Spring + Hibernate + JPA + C3P0 + MySQL 创建 Spring 配置文件 配置数据源 配置 EntityManagerFactoryBean

5.6K20

Hibernate SessionJpa EntityManager

本文主要比较一下二者操作实体类的方法的关系区别。 本文适用 Hibernate:4.3.11.Final spring-data-jpa:1.10.4.RELEASE 。...不是线程安全的; EntityManager 是线程安全的; 关于配置文件 Hibernate需要一个配置文件:hibernate.xml,文件classpath可以访问即可。...spring-data-jpa中对应getOne(); 如果数据库没有对应的记录,抛异常。 注:这里spring-data-jpa又任性了,getOne()不是对应get(),注意。...spring-data-jpa中对应findOne(); 如果数据库没有对应的记录,则返回null。 S.persist() = E.persist() 二者对应。...S.save() ≈ E.persist() EntityManager没有save方法。 区别: 调用前的实体对象,如果主键使用setter设置了值,E.persist()会抛异常。

2K20

jpaspringdata(1)jpa

1.什么是jpa 假如学过hibernatejpa会发现非常的简单,因为是同一个人写的,jpa是第三方orm框架的一种规范,hibernate作为jpa 的一个子集 2.需要导入的jar 这里使用的是...方法,但是不需要与数据库相关联,   那么get方法使用@Transient,jap处理注解类方法的注解,其余都在get方法,Column还具有以下一些属性 ,unique(唯一) 、   ...方法,没有save方法,不能设置id) entityManager.persist(mgr); 4> remove方法(类似于hibernate的delete方法) 5> merge方法(类似于updateorsave...原理hibernatemybatis差不多,前提需要开启被管理的orm框架的二级缓存 7.jpqlhibernate的hql的语法基本类似 1)createQuery方法: public void...备注:其它基本与hql一致,个人还是写sql写的比较多,然后使用类的方式也有//类找表 8.spring整合jpa <?xml version="1.0" encoding="UTF-8"?

2K20

(二)JPA 连接工厂、主键生成策略、DDL自动更新

2、JPA连接工厂 通过之前的 代码 实现已经清楚的发现了整个的JPA实现步骤,但是这个步骤似乎有一些繁琐了,毕竟最终所关心的一定是EntityManager对象实例,而要想获取到此对象的实例,那么要经过许多的步骤...对于叙测试类的优化。...每次业务发生改变时,也是先进行表结构的修改,而后再进行程序的变更,这样的数据库维护是非常繁琐的,考虑到数据库更新以及 数据库移植 方面的设计, Hibernate 之中提供了 DDL 自动创建以及表更新策略...JPA现在主要是基于 Hibernate 实现,那么 Hibernate 开发框架最早的一个特点就在于 可移植性,也就是说一个项目是MySQL数据库下开发的,那么通过简单的配置修改,可以让代码直接在...对于当前市面上可以见到的ORM开发框架来讲,只有JPA标准规定了数据库移植性的话题,而Hibernate 实现了JPA标准,所以只有Hibernate 开发框架具有移植性的功能,而像大家所熟悉的MyBatis

27010

Spring Data开发手册|Java持久化API(JPA)需要了解到什么程度呢?

JPA充分吸收了Hibernate、TopLink等ORM框架的基础发展起来的,使用方便,伸缩性强 注意: JPA不是一种新的ORM框架,它的出现只是用于规范现有的ORM技术,它不能取代现有的Hibernate...类似于JDBC,JDBC出现以前,我们的程序针对特性的数据库API进行编程,但是现在我们只需要针对JDBC API编程,这样能够不改变代码的情况下就能换成其他的数据库。...JPA技术技术因此而生 JPA是什么 JPA实际是sun公司出的一套规范、这套规范的作用是为了解决市场上ORM框架一家独大的问题 ?...; } JPA中对象的状态 对象的状态: 新建状态: User user = new User();和数据库以及内存没有任何关联,对象仅仅是被new出来之后的这种状态 托管状态: 对象调用了find...,并且进行提交的话,那么这个数据会和数据库进行同步 游离状态: 当前的对象调用了clear方法之后close方法之前的这段时间,这个对象处于游离状态。

1.3K30

Spring JpaTransactionManager事务管理

首先,在做关于JpaTransactionManager之前,先对Jpa做一个简单的了解,他毕竟不如hibernate那么热门,其实二者很相识,只不过后期hibernateJDO 版本都已经兼容了其Jpa...JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。...JPA的宗旨是为POJO提供持久化标准规范,由此可见,经过这几年的实践探索,能够脱离容器独立运行,方便开发测试的理念已经深入人心了。...Hibernate3.2、TopLink 10.1.3以及OpenJPA都提供了JPA的实现。 JPA的总体思想现有Hibernate、TopLink、JDO等ORM框架大体一致。...总的来说,JPA包括以下3方面的技术: ORM映射元数据 JPA支持XMLJDK5.0注解两种元数据的形式,元数据描述对象表之间的映射关系,框架据此将实体对象持久化到数据库表中; API 用来操作实体对象

50020

高级教程-springData-JPA第一天【悟空教程】

简单方便 JPA 的主要目标之一就是提供更加简单的编程模型: JPA 框架下创建实体创建 Java 类一样简单,没有任何的约束限制,只需要使用 javax.persistence.Entity...进行注释,JPA 的框架接口也都非常简单,没有太多特别的规则设计模式的要求,开发者可以很容易的掌握。...我们可以通过调用 EntityManager 的方法完成获取事务,以及持久化数据库的操作 方法说明: getTransaction : 获取事务对象 persist : 保存操作 merge : 更新操作...> 第三步:实体类使用注解建立与数据库表的映射 jpa 中的配置相同,可以直接沿用 jpa 中的实体类配置 @Entity @Table(name="cst_customer") public...没有事务的情况下: save 会去数据库中 保存,hibernate 提供了 一个内置的事务来 执 行。 persist 什么都不会 做。

4.3K30

Spring data 相关注解

@PrePersist @PostPersist事件实体对象插入到数据库的过程中发生; @PrePersist 事件调用 EntityManager.persist()方法后立刻发生,级联保存也会发生此事件...@PreRemove @PostRemove 事件的触发由删除实体引起,@ PreRemove 事件实体从数据库删除之前触发,即调用EntityManager.remove()方法或者级联删除...2)数据库插入 @PrePersist@PostPersist事件实体对象插入到数据库的过程中发生: @PrePersist事件调用persist()方法后立刻发生,此时的数据还没有真正插入进数据库...3)数据库更新 @PreUpdate@PostUpdate事件的触发由更新实体引起: @PreUpdate事件实体的状态同步到数据库之前触发,此时的数据还没有真正更新到数据库。...4)数据库删除 @PreRemove@PostRemove事件的触发由删除实体引起: @PreRemove事件实体从数据库删除之前触发,即在调用remove()方法删除时发生,此时的数据还没有真正从数据库中删除

2K20

SSH框架之Hibernate第四篇

b. hibernate中有自己的独立ORM操作数据库方式,也有JPA规范实现的操作数据库方式. c. 在数据库增删改查操作中,我们hibernateJPA的操作都要会....JPAhibernate的关系? JPA是接口,hibernate是实现. 所有的ORM框架都可以去实现JPA接口,通过JPA提供的一些接口来操作数据库的数据....没有事务的情况下: save会去数据库中保存,hibernate提供了一个内置的事务来执行。 persist什么都不会做。...更新操作 update (Object entity) merge (Object entity) Hibernatejpa都可以利用快照机制,不调用任何方法去更新。...给所有的orm框架提供了一套接口 好处: 所有的ORM框架只要实现了这个JPA接口,用来操作数据库数据的方式方法以及注解都一致了 jpa的环境搭建: hibernate的环境基础多加一个包

3.5K20

干货|一文读懂 Spring Data Jpa

其实这个话题松哥以前零零散散的介绍过,我的书里也有介绍过,但是公众号中还没大伙聊过,因此本文就和大家来仔细聊聊 Spring Data Jpa! 故事的主角 Jpa 1....JPAHibernate的关系 JPAHibernate 的一个抽象(就像JDBCJDBC驱动的关系); JPA 是规范:JPA 本质就是一种 ORM 规范,不是ORM 框架,这是因为 JPA...,然后再开启事务,调用 EntityManager 中的 persist 方法执行一次持久化操作,最后提交事务,执行完这些操作后,数据库中旧多出来一个 t_book 表,并且表中有一条数据。...注意: JPQL 不支持使用 INSERT 方法的返回值应该是 int,表示更新语句所影响的行数 调用的地方必须加事务,没有事务不能正常执行 默认情况下, Spring Data 的每个方法上有事务,...对于自定义的方法,如需改变 Spring Data 提供的事务默认方式,可以方法添加 @Transactional 注解。

2.8K20

Spring Boot2 系列教程(二十三)理解 Spring Data Jpa

其实这个话题松哥以前零零散散的介绍过,我的书里也有介绍过,但是公众号中还没大伙聊过,因此本文就和大家来仔细聊聊 Spring Data Jpa! 本文大纲: ? 1....1.1.2 JPA Hibernate 的关系 JPAHibernate 的一个抽象(就像 JDBC JDBC 驱动的关系); JPA 是规范:JPA 本质就是一种 ORM 规范,不是...,然后再开启事务,调用 EntityManager 中的 persist 方法执行一次持久化操作,最后提交事务,执行完这些操作后,数据库中旧多出来一个 t_book 表,并且表中有一条数据。...注意: JPQL 不支持使用 INSERT 方法的返回值应该是 int,表示更新语句所影响的行数 调用的地方必须加事务,没有事务不能正常执行 默认情况下, Spring Data 的每个方法上有事务,...对于自定义的方法,如需改变 Spring Data 提供的事务默认方式,可以方法添加 @Transactional 注解。

2K10

实战:应用对持久数据访问| 从开发角度看应用架构9

而ORM的实现,通过JPA的标准,底层使用Hibernate等技术。...java对数据库表的操作,实际是使用entity manager调用CRUD完成的。而entity manager之所以能对数据库做操作,是因为其底层调用Hibernate,封装了JDBC。...JPA提供者既可以将数据库表中的数据加载到实体类中,也可以将实体类中的数据存储到数据库表中。 提供者访问状态的方式称为访问模式。 有两种访问模式:基于字段的访问基于属性的访问。...EntityManager的关键方法是: persist()方法持久化一个实体并使其得到管理。 persist()方法在数据库表中插入一行。...每个持久性单元都必须有一个数据库连接。 JPA提供程序启动时使用JNDI查找服务按名称查找数据源。 4可以属性元素中设置其他标准或特定于供应商的属性。

1.6K30

Hibernate框架学习之四(JPA操作)

一、JPA概述以及它Hibernate之间的关系 1.1.Hibernate 概述   JPA Java Persistence API,是EJB3规范中负责对象持久化的应用程序编程接口(ORM接口)...给实体类添加适当的注释可以程序运行时告诉Hibernate如何将一个实体类保存到数据库中以及如何将数据以对象的形式从数据库中读取出来。   ...1.2 JPAHibernate 的区别   JPAHibernate之间的关系,可以简单的理解为JPA是标准接口,Hibernate是实现。   ...hibernate-entitymanager:实现了标准的JPA,可以把它看成hibernate-coreJPA之间的适配器,它并不直接提供ORM的功能,而是对hibernate-core进行封装,...System.out.println(em1==em2); } 八、JPA中用Hibernate的方式进行CRUD操作   配置文件的写法实体类的创建和普通的JPA是一样的,可以参考第三部分的入门案例

6.7K70

Spring全家桶之SpringData——Spring 整合HibernateHibernate Jpa

项目中额外导入Hibernate JPA的jar包 3 .修改配置文件 Hibernate JPA整合实现curd操作 环境搭建.接口实现类 注入EntityManager ,注入的方式改变 删除方式不同...Spring 整合Hibernate 正向工程: 通过实体类查询方法自动创建数据库表 如HibernateHibernate Jpa 逆向工程: 通过数据库表自动创建对应的实体类以及查询方法...项目中额外导入Hibernate JPA的jar包 hibernate-entitymanager-5.0.7.Final.jar 3 .修改配置文件 配置EntityManagerFactory...修改事务管理器 hibernate原生不可以Hibernate JPA混合使用 <?...entityManager; 删除方式不同 ,要先查询 ,根据id删除 增删改查调用的方法改变 ,通过entityManager对象实现真删改查操作 具体情况请看下面代码 Hibernate

2.6K20

Spring @Transactional工作原理

本文将深入研究Spring的事务管理。主要介绍@Transactional底层是如何工作的。 JPA事务管理 很重要的一点是JPA本身并不提供任何类型的声明式事务管理。...这种方式的事务管理使事务范围可以代码中很清晰地表达出来,但它有以下缺点: 容易出现重复代码错误 任何错误可能产生较大的影响 错误难以调试复现 降低了代码库的可读性 如果该方法调用了其他的事务方法如何处理呢...JPA中的持久化上下文是EntityManager,内部实现使用了Hibernate Session(使用Hibernate作为持久化provider)。...实现了EntityManager接口的持久化上下文代理并不是声明式事务管理的唯一部分,事实包含三个组成部分: EntityManager Proxy本身 事务的切面 事务管理器 看一下这三部分以及它们之间的相互作用...当业务方法调用entityManager.persist()时,这不是由entity manager直接调用的。

2.3K20

ORM Spring Data Jpa

什么是ORM 即Object-Relationl Mapping,它的作用是关系型数据库对象之间作一个映射,这样,我们具体的操作数据库的时候,就不需要再去复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了...JPAHibernate的关系 JPAHibernate 的一个抽象(就像JDBCJDBC驱动的关系); JPA 是规范:JPA 本质就是一种 ORM 规范,不是ORM 框架,这是因为...,然后再开启事务,调用 EntityManager 中的 persist 方法执行一次持久化操作,最后提交事务,执行完这些操作后,数据库中旧多出来一个 t_book 表,并且表中有一条数据。...注意: JPQL 不支持使用 INSERT 方法的返回值应该是 int,表示更新语句所影响的行数 调用的地方必须加事务,没有事务不能正常执行 默认情况下, Spring Data 的每个方法上有事务...对于自定义的方法,如需改变 Spring Data 提供的事务默认方式,可以方法添加 @Transactional 注解。

3.3K30

Spring 全家桶之 Spring Data JPA(一)

简单方便    JPA的主要目标之一就是提供更加简单的编程模型:JPA框架下创建实体创建Java 类一样简单,没有任何的约束限制,只需要使用 javax.persistence.Entity进行注释...,JPA的框架接口也都非常简单,没有太多特别的规则设计模式的要求,开发者可以很容易的掌握。...高级特性    JPA 中能够支持面向对象的高级特性,如类之间的继承、多态类之间的复杂关系,这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性关系数据库的持久化...内部维护了数据库连接信息 内部维护了缓存信息 内部维护了所有的实体类管理对象 可以根据配置选创建或者不创建实体类对应的数据库EntityManager 作用:实体类管理器,关于表的操作都在该类...,将SQL语法简单查询语义绑定在一起·使用这种语言编写的查询是可移植的,可以被编译成所有主流数据库服务器的SQL。

1.4K20
领券