У меня есть сущность Hibernate, в которую я хотел бы добавить метод. Этот метод вызовет диспетчер сущностей и запустит подготовленный оператор, но я не знаю, как создать экземпляр диспетчера сущностей. Всякий раз, когда я пытаюсь, автоматически подключаю его так:
@Autowired
private transient EntityManager entityManager;
entityManager имеет значение null, когда я запускаю приложение. Автономное подключение работает для всех остальных моих классов. Почему я не могу автоматически подключить entityManager в своей сущности и как мне выполнить свой запрос в Entity?




@Autowired предназначен для beans, классов с @Service или @Component. Классы с пометкой @Configuration также могут использовать @Autowired. Новые экземпляры этих классов создаются и управляются Spring, если вы попытаетесь создать новые экземпляры этих классов, @Autowired там тоже не сработает. Такие как MyClass myClass = new MyClass()
Классы, отмеченные @Entity, не являются управляемыми компонентами, они создаются менеджером сущностей, когда вы запрашиваете их из базы данных, но когда вы создаете новую строку, вы создаете новый экземпляр. Spring не творит им своего волшебства. Вы должны вызывать свою хранимую процедуру из @Service так же, как если бы вы использовали @Repository или диспетчер сущностей для сохранения @Entity.
Нет, @Entity не может иметь @Autowired, почему вы не можете поместить вызов хранимой процедуры в @Service?
Мой DAO аннотирован @Component, имеет ли это значение?