gpt4 book ai didi

java - 是否可以将spring data jpa存储库注入(inject)到java持久实体中?

转载 作者:行者123 更新时间:2023-11-30 06:00:47 25 4
gpt4 key购买 nike

是否可以将spring data jpa存储库注入(inject)到java实体中(使用hibernate将POJO声明为持久实体)?

我有这样的 Person java 实体模型。

@Entity
@Table(name="PERSON")
public class Person implements Serializable {
@Id
@Column(name="PERSON_ID",nullable=false)
private UUID personId;
...

这是 spring data jpa 存储库:

public interface PersonRepository extends JpaRepository<Person,UUID> {
@Query("from Person where Person.id = ?1")
Person findPersonById(UUID id);

最佳答案

不,你永远不应该这样做。 JPA 实体是在 JPA 提供程序生命周期内处理的。 JPA 规范明确禁止在 PrePersist、PreUdate 等监听器中执行任何数据库操作。从实体内部执行任何与主动持久性相关的操作可能会产生意想不到的副作用。

关于是否可能的问题。一切皆有可能:)但这并不意味着这是一个好主意。

但是,您将无法控制 hibernate 或 spring 数据如何初始化这些实体。实体不由 spring 管理,因此如果您想实际执行一些依赖项注入(inject),则需要 AspectJ 参与执行代码编织。

关于java - 是否可以将spring data jpa存储库注入(inject)到java持久实体中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52321965/

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