我有一个 Hibernate 实体,我想在其中放置一个方法。此方法将调用实体管理器并运行准备好的语句,但我不知道如何实例化实体管理器。每当我尝试时,像这样自动装配它:@Autowired
private transient EntityManager entityManager;当我运行应用程序时 entityManager 为空。自动装配适用于我所有的其他课程。为什么我不能在我的实体中自动装配 entityManager,我如何在实体中执行我的查询?
1 回答
万千封印
TA贡献1891条经验 获得超3个赞
@Autowired 用于 bean,带有 @Service 或 @Component 的类。标记为@Configuration 的类也可以使用@Autowired。这些类的新实例由 Spring 创建和管理,如果您尝试创建这些类的新实例 @Autowired 也不会在那里工作。如MyClass myClass = new MyClass()
用@Entity 标记的类不是托管 bean,它们是在您从数据库中查询它们时由实体管理器创建的,但是当您创建新行时,您会创建一个新实例。春天不做这对他们来说很神奇。您应该从@Service 调用存储过程,就像使用@Repository 或实体管理器来保存@Entity 一样。
添加回答
举报
0/150
提交
取消