当前位置: 首页 > 知识库问答 >
问题:

JPA-在实体对象中使用entityManager

苏坚成
2023-03-14

我从我的Spring项目中删除了Spring Roo,这是不必要的,而且在eclipse STS中构建花了很多时间。我执行了一个推入,我的实体对象现在包含了旧的Roo文件的源代码。

几乎没有什么变化,包括PersistentContext管理,这看起来很奇怪。事实上,我注意到,每次创建查询时,我都需要实例化实体类以获得EntityManager?

在我的实体类中,我有

@Configurable
@Entity
@Table(name = "angr_clienti")
public class AngrClienti {

....

@PersistenceContext
    transient EntityManager entityManager;

public static final EntityManager entityManager() {
        EntityManager em = new AngrClienti().entityManager;
        if (em == null) throw new IllegalStateException("Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)");
        return em;
    }

public static List<AngrClienti> findAllAngrClientis() {
        return entityManager().createQuery("SELECT o FROM AngrClienti o", AngrClienti.class).getResultList();
    }
new AngrClienti().entityManager;

共有1个答案

公羊浩气
2023-03-14

那么,您还建议如何实现静态EntityManager方法呢?

我不知道为什么您认为创建Angriclienti的新实例代价很高。新的AngrClienti().entityManager只是确保为每个工作单元获得一个新的entityManager。而且,由于不保留该对象,因此它并不特别消耗内存。

在任何情况下,活动记录现在都被认为是一种反模式。如果我是你,我会考虑转而使用存储库。

 类似资料:
  • 我是Java的新手,我已经开发了一个程序,允许用户输入他的in-and结果,还可以看到这两个结果的摘要(第二个代码示例)。 我使用文本文件存储数据(第一个示例)。我为每个用户使用两个文本文件,一个用于收入,一个用于结果。 下面的代码示例总结了用户的in-和结果(注意:opnEsoda是一个扫描器): 这会显示:你得到67欧元 我的目标是把这周和这个月花的钱拿出来。我还想知道每一个类别(可选)的花费

  • 我有一个实体CandidateTransaction和CandidateTransactionRepository扩展了CrudRepository 我正在使用CrudRepository的save方法来保存所述实体的对象。当实体没有行时,它将创建一个自动生成的键并将其插入ID列,而不需要Java端的干预。 而且,由于CrudRepository的save()方法检查实体是否是新的,如果是新的,它

  • 如何将映射到Spring JPA中DATE_TYP(oracle对象类型)的列? 注意:我使用Hibernate作为持久性提供程序。

  • 问题内容: 有谁知道我该如何在hibernate状态下做到这一点: 使用JPA? EntityManager有一个contains方法,但仅此而已! 我正在编写一些代码,充当实体和会话中存储的数据之间的转换器(因此,不是存储序列化的对象,而是仅存储类名和ID)。 问题答案: 有谁知道我可以用JPA在hibernate(…)中做到这一点? JPA 1.0没有等效的功能,因此如果您坚持使用JPA 1.

  • 我的问题可能看起来很傻。我是JPA的新手,试图理解它的基本概念。我发现有一种@multi-to-one实体关系可以在那里使用。我的问题是,为什么有人想在拥有“一对多”关系的同时使用它?我的意思是,拥有后一个就足够了解关系并发送查询了,对吗?如果没有,请解释。也许我对这两种关系的看法是完全错误的。请提供一个场景作为示例,以便我更好地理解。谢谢

  • 我开始学习使用实体图来减少N1问题。但我面临一个问题,findAll方法返回重复数据。 < code >人 我创建一个 pom.xml代码 我的代码出了什么问题?方法 都不能使用 EntityGraph?