gpt4 book ai didi

spring-boot - 使用 spring-data-jpa 和 hibernate 作为 jpa 提供程序时的对象/实体生命周期?

转载 作者:行者123 更新时间:2023-12-04 12:35:39 26 4
gpt4 key购买 nike

当使用 spring-data-jpa 和 hibernate 作为 jpa 提供者时,对象/实体生命周期是否与直接使用 hibernate 或由 hibernate 定义(或者可能是 jpa 规范本身)相同。

Hibernate 为实体定义了这些生命周期 - Transient、Persistent、Detached、Removed。这些相同的生命周期是否也适用于使用 spring-data-jpa 时。如果是这样,Hibernate 提供的方法如何映射到 spring jpa crud 存储库的方法。

//below methods in hibernate move an entity to persistent state
save(e),
persist(e);
update(e);
saveOrUpdate(e);
lock(e);
merge(e);

//below methods in hibernate move an entity to detached state
detach(e);
evict(e);

最佳答案

对于问题的第一部分:

Spring Data JPA 只是在 JPA 之上提供了一些舒适的机制。持久性、映射和生命周期仍然由 JPA 或其实现管理,即您的情况下的 Hibernate。这意味着生命周期是相同的。

Spring Data JPAs方法与Hibernates/JPA方法的映射见下表。

<表类="s-表"><头> Spring 数据JPA<正文> CrudRepository.save*对于新实体 EntityManager.persistEntityManager.merge 否则 CrudRepository.delete* EntityManager.remove CrudRepository.findById EntityManager.find* JpaRepository.*flush EntityManager.flush JpaRepository.getById EntityManager.getReference

在接口(interface)中预定义的其他查询方法或以其他方式使用各种类型的查询。

关于spring-boot - 使用 spring-data-jpa 和 hibernate 作为 jpa 提供程序时的对象/实体生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65262120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com