0

問題: orderRepository = null私が理解しているように、ユーザーはSpringによって作成されたBeanではなく、 newを使用して作成されたオブジェクトであり、そのプロパティがdaoに設定され て
いるため、orderRepositoryは注入されませんか?

ユーザーをアクティブオブジェクトとして作成しているため、リポジトリをモデルクラスに注入しています。任意の解決策、またはより良い方法がありますか?

@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;
    }
}

4

1 に答える 1

0

User何らかのリポジトリによって作成されていると思います。したがって、自分で注入する必要がありOrderRepositoryます。ORM / DB フレームワークがインターセプターをサポートしている場合、OrderRepository. または、Spring が注入された空のインスタンスを作成しOrderRepository、フレームワークが DB からの値で埋めます。

そのインスタンスがUserリポジトリによって作成されていない場合、Spring がその役割を果たします。

またはorderRepository、静的メンバーを作成するだけで、より理にかなっています。

于 2013-03-17T20:09:02.003 に答える