2015-07-10 12 views

Trả lời

2

@PersistenceContext là chú thích chuẩn JPA được thiết kế cho mục đích cụ thể đó. Trong khi đó, @Autowired được sử dụng cho bất kỳ sự tiêm phụ thuộc nào vào mùa xuân. Sử dụng @PersistenceContext cho phép bạn kiểm soát tốt hơn ngữ cảnh của mình vì nó cung cấp cho bạn khả năng chỉ định các yếu tố tùy chọn, ví dụ: tên, thuộc tính

+0

Tôi biết điều này, nhưng tác động trong ứng dụng là gì? Xem xét sử dụng tiêu chuẩn ** @ Giao dịch ** từ Spring. Khi sử dụng ** @ Autowired **, hành vi tương tự như khi sử dụng ** @ PersistenceContext ** sẽ xuất hiện và có giao dịch cho mỗi ứng dụng? –

+1

Tôi tin rằng cách tốt nhất là sử dụng '@ PersistenceContext' vì nó mô tả kỹ hơn về loại tiêm phụ thuộc mà bạn đang cố gắng đạt được. Ngoài ra, nó cung cấp các tham số tùy chọn đặc biệt cho việc sử dụng một EntityManager, điều này có thể hữu ích khi bạn có nhiều hơn một EntityManager. Chức năng tôi tin rằng bạn có thể đạt được cùng một tiêm với '@ Autowired', nhưng tôi sẽ giới thiệu bằng cách sử dụng chú thích được thiết kế để được sử dụng như thế này. – Alex

+1

http://blog.jhades.org/how-does-spring-transactional-really-work/ giải thích nó tốt hơn tôi có thể. – Alex

3

@PersistenceContext:

làm không phải là ví dụ về trình quản lý đối tượng trả lại

nó trả về container-manag ed proxy mua lại và phát hành bối cảnh hiện diện thay mặt cho mã ứng dụng

Các vấn đề liên quan