Задача: заказRepository = null.
Как я понимаю orderRepository не вводится, потому что пользователь не bean, созданный Spring, а только объект, созданный с использованием new, а затем его свойства были установлены в dao?Инъекционный компонент динамически? Или @Autowire bean не создан Spring
Я заставляю пользователя как активный объект, так что вставляя репозиторий в класс модели. Любое решение, или, может быть, есть лучший способ?
@Controller
class UserController {
...
// Get user from DB
User user = userService.findUser(userId);
Order order = user.findOrder(orderId);
...
}
@Component
User {
@Autowired
OrderRepository orderRepository;
Order findOrder(long orderId) {
Order order = orderRepository
.findOrderOrThrowException(this.getId(), orderId);
return order;
}
}
У вас есть директива компонента-сканирования, активированная в вашем приложенииContext.xml? . Как выглядит класс OrderRepository? –
Да, я получил все это, и приложение больше, чем то, что выше :) и отлично работает с вложенным репо в модель, если только я не извлечу класс модели из БД. И этот ** Пользовательский компонент bean создается как новый User() в dao, тогда свойства заполняются из набора результатов. Класс Repo является обычным классом, у него есть dao. – Dmitry