为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 HQL 放入实体中?

如何将 HQL 放入实体中?

繁花如伊 2021-08-04 17:31:27
我有一个 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 一样。


查看完整回答
反对 回复 2021-08-04
  • 1 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信